home *** CD-ROM | disk | FTP | other *** search
/ Monster Media 1996 #15 / Monster Media Number 15 (Monster Media)(July 1996).ISO / cad / lasi512b.zip / LASI51.LHI < prev    next >
Text File  |  1996-04-04  |  209KB  |  4,966 lines

  1. ≡≡
  2. Basic Information
  3.  
  4.  Introduction
  5.  
  6.                 LASI (LAyout System for Individuals(ists))
  7.  
  8.                            (Pronounced "LAZY")
  9.  
  10.                               Version 5.1.2
  11.  
  12.  
  13.  
  14.   LASI is a DOS based CAD system consisting of a main drawing program and a
  15.   number of utility programs. The original but fairly limited version of
  16.   LASI was written several years ago for the author's own professional use
  17.   to do IC and semiconductor device layout on a personal computer. Since
  18.   then, LASI has been completely rewritten, taking advantage of new
  19.   hardware and software. With many improvements and the addition of several
  20.   new utility programs, LASI has become a fairly complete design package
  21.   with the features:
  22.  
  23.   ■ Drawings made with LASI can be converted to and from Calma Stream
  24.     Format (GDS or GDSII).
  25.  
  26.   ■ Drawings can be converted to and from and Caltech Intermediate Format
  27.     (CIF).
  28.  
  29.   ■ Drawings can be imported reasonably well from AutoCAD (DXF).
  30.  
  31.   ■ Design rule checking can be done using 2-dimensional bitmap logical
  32.     operations between drawing layers.
  33.  
  34.   ■ SPICE circuit analysis files can be compiled from schematic or layout
  35.     drawings for schematic capture or actual IC simulation.
  36.  
  37.   ■ Plots, accurate prints and hardcopies can be made using plotting
  38.     utility programs. The programs can either drive a printer or plotter
  39.     directly or generate files. The formats available are:
  40.  
  41.       Hewlett-Packards's HP-GL (plotters)
  42.       Hewlett-Packards's PCL (laser/DeskJet)
  43.       Epson's ESC/P (dot matrix and inkjet)
  44.       ZSoft's PCX (Windows, PaintBrush, Word Processors, etc.)
  45.  
  46.   Although written for DOS, LASI will run under Windows 3.1, Windows 95, or
  47.   OS/2 or any operating system that has support for DOS programs that use
  48.   extended (XMS) memory. LASI has its own graphics and is not dependent on
  49.   the operating system's graphical user interface. LASI is more or less
  50.   written to operate on common hardware and not to conform to any current
  51.   operating system.
  52.  
  53.   In addition to IC layout, LASI can be used for hybrids, printed circuit
  54.   boards, schematic diagrams and other precision drawing applications.
  55.   Since its general distribution as a form of shareware, LASI has become
  56.   particularly valuable to students, universities, small businesses or
  57.   anyone who doesn't have the funding for more elaborate drawing systems.
  58.  
  59.   LASI is a good basic CAD system that can be used to teach design
  60.   techniques. Anyone learning on LASI can go on to more elaborate systems.
  61.   If a more elaborate system is in use, LASI can still be a supplemental
  62.   system that lets time-consuming tasks be done on a PC and then be
  63.   transferred to the bigger system.
  64.  
  65.   LASI is intended to be friendly and intuitively obvious, which makes it
  66.   easy to learn and operate by occasional users. Once the basics are
  67.   understood, the commands usually require little additional explanation.
  68.   Most commands operate on the drawing globally, so that there are no
  69.   special editing procedures for different parts of a drawing. There are no
  70.   hierarchical command structures with pull down menus. All commands are
  71.   essentially random access through menus at the side of the display and
  72.   may be easily aborted.
  73.  
  74.   Information is usually entered by mouse or keyboard. When a command is
  75.   executed, the program is so designed that the results are displayed as
  76.   soon as possible, to give good operator interaction.
  77.  
  78.   LASI's construction is fairly modular and is designed for programming
  79.   simplicity. Some procedures or command sequences may appear somewhat
  80.   primitive to someone experienced with other CAD systems. Because of its
  81.   structure however, LASI usually can be modified easily, and new features
  82.   and commands can always be added. This allows good ideas from users to be
  83.   incorporated into future versions of LASI.
  84.  
  85.   LASI is intended to be propagated by software alone. The programs are
  86.   constantly being updated with improvements and new features. A printed
  87.   manual would soon be outdated and would add an expense that would require
  88.   charging everyone for LASI. There is therefore no printed manual. The
  89.   LASI Help and Information program, LHI.EXE, displays the documentation,
  90.   and individual topics can be printed if desired. If a printed manual is
  91.   needed, a program MANUAL.EXE is supplied that prints a manual complete
  92.   with index from any LASI help file.
  93.  
  94.   You should read the remaining Basic Information topics. After that, you
  95.   can work your way through the General Information topics.
  96.  
  97.   If you are in a hurry to run LASI, it is recommended that you read the
  98.   General Information/Hardware topic to see if your PC is capable of
  99.   running LASI adequately, and then go to the Quick Start topic.
  100.  
  101.   If you are new to LASI you should run the tutorial IC layout. By working
  102.   with a simple layout, you will get a good idea of how LASI works.
  103.  
  104.   If you have been using LASI version 4.X, you MUST read the Converting
  105.   Versions topic. You should also read What's New, to see what changes have
  106.   been made since the last release.
  107.  
  108.  What's New
  109.  
  110.   There have been many small changes and some large changes to LASI in
  111.   version 5.1. These are some of the main changes from previous 5.0.7:
  112.  
  113.   Version 5.1.0
  114.   -------------
  115.   ■ LASI version 5.1 has an improved memory manager that works directly to
  116.     an operating system's XMS memory manager services. This eliminates
  117.     Microsoft's somewhat quirky virtual memory functions that were used in
  118.     LASI 5.0. The resulting code is 10KB-13KB smaller and works more
  119.     elegantly and probably faster. Also eliminated is EMS support, since
  120.     anyone running LASI on a 386 or better has XMS through HIMEM.SYS,
  121.     Windows or one of the memory managers (QEMM, etc.).
  122.  
  123.   ■ There is a new command VSTP which makes it easier to work with
  124.     polygons, since it lets you "walk" an active vertex along a polygon.
  125.  
  126.   ■ There is also a new DPTH command that limits the depth to which cells
  127.     are drawn fully. This should be very useful if drawings contain cells
  128.     nested several levels deep, because it both speeds redraws and makes
  129.     drawings clearer.
  130.  
  131.   ----------------------------------------------------------------------
  132.   Note: When you first run 5.1 on a 5.0 drawing, the depth will be 0 and
  133.     all cells will be drawn as dotted outlines. Reset the level with the
  134.     DPTH command, after which the level will be retained correctly.
  135.   ----------------------------------------------------------------------
  136.  
  137.   ■ Changing path width and end types (inline or extended end) is now much
  138.     easier because if you change the width, the position of the end faces
  139.     of the path is always preserved.
  140.  
  141.   ■ The pan (arrows) and XPND commands now have vernier functions when the
  142.     ALT key is pressed.
  143.  
  144.   ■ Function keys on the utility programs have been replaced by mouse
  145.     buttons or ALT-key inputs. The utility parameter editor now works much
  146.     like the editor used in Windows - so as not to confuse people who
  147.     normally run Windows.
  148.  
  149.   ■ There is a new utility program FLATTLC.EXE that smashes nested TLC
  150.     files into a single flat TLC file, or generates a set of flattened TLC
  151.     files for the LASICKT SPICE compiler.
  152.  
  153.   ■ The MANUAL.EXE manual printing program now prints the correct page
  154.     numbers in the index on long files. It also has had several new
  155.     features added.
  156.  
  157.   ■ The plotting programs have been modified so that the orientation of the
  158.     viewed drawing window and the plotting (printing) on the paper are the
  159.     same, that is, plotting is now done normally in "portrait" orientation.
  160.     Drawings can optionally be rotated 90 deg. The previous method of
  161.     plotting which rotated a drawing into "landscape" orientation confused
  162.     even the author.
  163.  
  164.   ■ The hardcopy programs have also been modified so that shifting of the
  165.     print on the paper is more intuitive.
  166.  
  167.   ■ The action of the command buttons in Cell Mode has been improved so
  168.     that windowing commands abort more logically.
  169.  
  170.   Version 5.1.1
  171.   -------------
  172.   ■ The converters GDS2TLC.EXE and CIF2TLC.EXE now have an algorithm that
  173.     determines the coarsest LASI grid needed to convert GDS or CIF without
  174.     distorting coordinates positions.
  175.  
  176.   ■ The converters TLC2GDS.EXE and TLC2CIF.EXE now check if the GDS or CIF
  177.     grid being used converts points from the LASI grid without distorting
  178.     coordinates positions.
  179.  
  180.   ■ The Snap command now snaps coordinates to the NEAREST snap grid
  181.     correctly.
  182.  
  183.   ■ Closed text polygons now can be filled just like any other closed
  184.     polygon object. In previous releases of LASI text never filled.
  185.  
  186.   ■ New text font file TFF2.DBD is included which draws solid filled
  187.     characters instead of the line characters of font file TFF.DBD.
  188.  
  189.   ■ Text is now proportionally spaced and the text character spacing ratio
  190.     is slightly different. You will probably have to change the Text
  191.     Spacing Ratio. Read the SET command topic.
  192.  
  193.   ■ The form file variable "text=" has been changed to "font=". However,
  194.     "text=" will still work. Also, new keyword "misc=" has been added to
  195.     the form file that sets various disparate parameters. Read General
  196.     Information/Form File for details..
  197.  
  198.   ■ The plotting programs ESCPLOT.EXE, PCLPLOT.EXE and PCXPLOT.EXE have
  199.     been condensed into a single plotting program PRNPLOT.EXE that can plot
  200.     in any of the 3 individual formats.
  201.  
  202.   ■ The status display of the LASIDRC.EXE program has been changed to a
  203.     graphical display of the area of an IC currently be checked.
  204.  
  205.   ■ A new little program NETCOMP.EXE has been added the compares SPICE
  206.     network lists generated by LASICKT.EXE. This should help when doing
  207.     schematic to layout checking.
  208.  
  209.   ■ The left mouse button, not the right button, now activates menu
  210.     commands. Originally, the action of the left button was not restricted
  211.     to the drawing area. Now that it is, the left button can be used for
  212.     the menu. Most people seem to prefer to select commands and do
  213.     graphical operations with left button. This conforms to most other
  214.     drawing programs, particularly Windows programs. The right button still
  215.     aborts drawing, changes pages and flips the menu. If you still want to
  216.     use the right button, you can set it in the form file by adding the
  217.     parameter "misc=rmb" to that file.
  218.  
  219.   Version 5.1.2
  220.   -------------
  221.   ■ The cursor control fuctions have been revised so that the cursor always
  222.     shows the exact location and actions that will be done. Unless on
  223.     buttons, the left mouse button inputs coordinates even if the cursor is
  224.     off the drawing area.
  225.  
  226.   ■ The toggle switches in the the upper right of the display have become
  227.     actual buttons. This is a prelude to utility call buttons to be added
  228.     in version 5.2.
  229.  
  230.  Installing LASI
  231.  
  232.   The following information outlines the installation procedures for
  233.   installing LASI on any PC. If you are reading this, you probably have
  234.   done most of the installation already. The information is given here so
  235.   that you can verify that installation has been done correctly.
  236.  
  237.   LASI will be ready to run with just the basic installation. When you are
  238.   more familiar with LASI's workings you can do the advanced installation.
  239.  
  240.  
  241.   Installation from Floppy Disk
  242.   -----------------------------
  243.   The LASI files are distributed in compressed form. The distribution disk
  244.   can be either a high-density 5.25" or 3.5" floppy disk.
  245.  
  246.   The files on the floppy disk usually will be ZIP compressed into a file
  247.   LASI51?.ZIP, where "?" represents the revision number. Also included on
  248.   the disk will be Info-ZIP's UNZIP.EXE or a program that uses portions of
  249.   code from that program, and a program INSTALL.EXE.
  250.  
  251.   Run the installation program INSTALL.EXE. INSTALL should work with
  252.   whatever form the LASI files have been supplied and will do the
  253.   following:
  254.  
  255.   1. INSTALL will determine the floppy drive that you are using and will
  256.      ask for the hard disk drive where you want LASI to install. it will
  257.      create a subdirectory named \LASI5 on your hard disk, if it has not
  258.      yet been created.
  259.  
  260.   2. INSTALL will then ask if you want different blocks of files to be
  261.      installed. If set to "Y" it will create any subdirectories and extract
  262.      the files. The ICON and TUTOR files should be installed. The CHARS
  263.      files are small LASI drawings of the text characters that can be used
  264.      to customize your text characters. Installing the character files is
  265.      optional because there are about 200 of them. You can extract them one
  266.      at a time from the ZIP file if you want.
  267.  
  268.   3. INSTALL will ask if you want any custom files that may be on the
  269.      floppy disk to be installed. Certain customized editions of LASI may
  270.      have additional files distributed with the standard LASI files.
  271.  
  272.   4. INSTALL will ask if you want to run the tutorial after the
  273.      installation. This will be done automatically if you say "Y".
  274.  
  275.   5. INSTALL will modify your AUTOEXEC.BAT file in the hard disk root
  276.      directory by adding the directory "\LASI5" to the DOS PATH variable.
  277.      You will find "PATH=\LASI5;%PATH%" added at then end of the file. Just
  278.      erase this if you want to undo this change.
  279.  
  280.   6. INSTALL will automatically write "SET LASIDRIVE=drive:" at the end of
  281.      your AUTOEXEC.BAT file, where "drive" is the logical hard disk drive
  282.      where you have installed LASI.
  283.  
  284.  
  285.   Installation from Networked Files
  286.   ---------------------------------
  287.   If downloaded from the Internet or other network or bulletin board, the
  288.   files should be in a single ZIP file LASI51?.ZIP, or two ZIP files
  289.   LASI51?A.ZIP and LASI51?B.ZIP, where "?" is the revision number.
  290.  
  291.   Each ZIP will have a !README.TXT file, containing basic installation
  292.   instructions. You should supply your own PKUNZIP 2.0 or other unZIP
  293.   program.
  294.  
  295.   The files are listed in the System Contents help topic. If for some
  296.   reason you obtain LASI as individual files, you should check to see if
  297.   you have a complete set of files. All files should have the SAME DATE AND
  298.   TIME to insure compatibility.
  299.  
  300.   This is from the !README.TXT file found within the main ZIP files. It is
  301.   repeated here for convenience.
  302.  
  303.   1. Create a directory named "\LASI5" on your hard disk under the root
  304.      directory.
  305.  
  306.   2. Copy the ZIP file LASI51?.ZIP, or the files LASI51?A.ZIP and
  307.      LASI51?B.ZIP into the \LASI5 subdirectory. Using PKUNZIP 2.0 or
  308.      similar program, uncompress the files.
  309.  
  310.   3. Create the subdirectories "\LASI5\TUTOR", "\LASI5\ICONS" and
  311.      "\LASI5\CHARS" in the \LASI directory.
  312.  
  313.   4. Using PKUNZIP or similar program, uncompress the files TUTOR.ZIP,
  314.      ICONS.ZIP and CHARS.ZIP in their respective subdirectories.
  315.      Uncompressing the CHARS.ZIP file is optional because there are about
  316.      200 small files in the ZIP file.
  317.  
  318.      !!! DO NOT UNCOMPRESS THESE FILES IN THE \LASI5 DIRECTORY !!!
  319.  
  320.   5. Add the path "drive:\LASI5" to DOS using the DOS PATH command, where
  321.      "drive" is the hard disk's logical drive letter. You should add this
  322.      to the PATH variable in your AUTOEXEC.BAT file.
  323.  
  324.   6. Add the DOS environment variable "LASIDRIVE=drive:" to the
  325.      AUTOEXEC.BAT file, where "drive" is the logical drive letter of the
  326.      hard disk where LASI is installed. For example, if on C: hard disk, it
  327.      should read "SET LASIDRIVE=C:" in your AUTOEXEC.BAT. If you have only
  328.      one hard disk you can omit the variable and it will default to the
  329.      current drive.
  330.  
  331.   7. Reboot so that the modified AUTOEXEC.BAT will take effect.
  332.  
  333.  Quick Start
  334.  
  335.   If you are eager to try out LASI here is what to do:
  336.  
  337.   1. Install a mouse and its driver software if you haven't already.
  338.  
  339.     You must have an working mouse to operate LASI. If you start LASI
  340.     without a mouse, It should exit; if not press CTRL-END.
  341.  
  342.   2. Install the LASI files by either method described above.
  343.  
  344.   3. Be sure that "drive:\LASI5" is in your DOS PATH variable and that
  345.      "LASIDRIVE=drive:" has been set as a DOS environment variable, where
  346.      "drive:" is the logical drive where LASI files have been installed.
  347.      You can check by just typing "SET" on the DOS command line.
  348.  
  349.   4. Create a "drawing directory" on the hard disk where you installed the
  350.      system files and make that directory your default directory.
  351.  
  352.      !!! DO NOT MAKE DRAWINGS IN THE \LASI5 DIRECTORY !!!
  353.  
  354.   5. Copy the FORM.DBD file from the \LASI5 directory to the drawing
  355.      directory. LASI will exit if it does not find that file.
  356.  
  357.     The FORM.DBD distributed with the system files is a "generic" version
  358.     and should work with most hardware.
  359.  
  360.   6. Run LASI by simply typing "lasi".
  361.  
  362.     The main drawing program should come up in "System Mode". You can get
  363.     help in general by pressing F1, or you can get help on any command by
  364.     putting the MOUSE CURSOR on a MENU BUTTON and then pressing F1.
  365.  
  366.   You are now free to experiment on your own!
  367.  
  368.  Converting Versions
  369.  
  370.   Version 4.X to Version 5.1
  371.   --------------------------
  372.   The internal drawing files of version 4 (BP4 and CL4) are incompatible
  373.   with version 5.0 or 5.1, mainly because of the 16-bit (short) integers
  374.   stored in them. These files have been renamed with the extensions BP5 and
  375.   CL5, so that there will be no accidental conflicts that can destroy a
  376.   drawing.
  377.  
  378.   LASI 5.1 is furnished with a conversion program 4TO5.EXE. To make a
  379.   version 4 into a version 5 drawing simply make the drawing directory the
  380.   default directory and run 4TO5.EXE. New files will be written and the old
  381.   files will be left unchanged.
  382.  
  383.   If a version 4 BP4 file is very large, 4TO5.EXE may run out of space. Use
  384.   TLCIN.EXE to convert if this happens. TLCIN.EXE can read version 4 TLC
  385.   files and convert them to version 5.1.
  386.  
  387.   TLCOUT.EXE can be used to convert in reverse from version 5.1 to version
  388.   4, except that if the dimensional data exceeds 16-bit limits (+/-32767)
  389.   it will overflow version 4.
  390.  
  391.   The CELLS4.DBD file of version 4 is compatible with version 5.1. The
  392.   reverse is not true, mainly because version 5.1 may contain 32-bit
  393.   integers. The 4TO5.EXE program writes a new file named CELLS5.DBD.
  394.  
  395.   The CONSTS4.DBD file of version 4 is totally incompatible with version
  396.   5.1, and should not be copied from old version 4 drawings. When you run
  397.   LASI 5.1, a new file named CONSTS5.DBD will be written.
  398.  
  399.   The TFF.DBD and FORM.DBD files are compatible. The FORM.DBD file has some
  400.   new additions that are explained under General Information/Form File and
  401.   General Information/Layer Names.
  402.  
  403.  Terms of Distribution
  404.  
  405.   The LASI system files can be freely copied and distributed by anyone.
  406.   LASI is distributed by floppy disk, or can be downloaded from sites on
  407.   the Internet, other networks, CD-ROMs or bulletin boards.
  408.  
  409.  
  410.   Floppy Disk Distribution
  411.   ------------------------
  412.   If distributed on floppy disk, the original disk, although copyrighted,
  413.   should be directly duplicated using DISKCOPY.COM or other program.
  414.  
  415.   The disk should contain a decompression program UNZIP.EXE from the Info-
  416.   ZIP group or a program that uses portions of code from that program. This
  417.   program can be freely distributed with LASI as long as the following
  418.   notice is included in this help file:
  419.  
  420.     The installation program INSTALL.EXE uses Info-ZIP's UNZIP.EXE or
  421.     portions of its source code to decompress files. Info-ZIP's software
  422.     (ZIP, UNZIP and related utilities) is free and can be obtained as
  423.     source code or executables from various bulletin board services and
  424.     anonymous-ftp sites, including CompuServe's IBMPRO forum and
  425.     ftp.uu.net:/pub/archiving/zip. The source code or executables can also
  426.     be obtained free of charge from the author of LASI.
  427.  
  428.  
  429.   Network Distribution
  430.   --------------------
  431.   Any university or technical school that maintains an Internet site for
  432.   CAD or IC development software, is encouraged to help distribute LASI.
  433.   Because it is non-commercial and therefore not advertised, LASI has a
  434.   chronic visibility problem, and distribution sites are always welcome.
  435.  
  436.   LASI system files are normally compressed for networks in one or two ZIP
  437.   files. ZIP is the preferred format for network distribution. The ZIP file
  438.   compression standard, maintained by PKWare,Inc., is public domain; the
  439.   compression software from PKWare (PKZIP, PKUNZIP, etc.) is not, and is
  440.   therefore not distributed with LASI.
  441.  
  442.   If LASI is to be placed on a network, the author should be contacted for
  443.   the latest ZIP version of the system files. Also, the author should be
  444.   informed of the network address and to whom updates can be sent. LASI has
  445.   been found all over the world, mostly in duplicates or old versions.
  446.  
  447.  
  448.   Making a Distribution Floppy
  449.   ----------------------------
  450.   If you received LASI as only one or more ZIP files from a network, you
  451.   can make an installable floppy by doing the following:
  452.  
  453.   1. Unzip only the program INSTALL.EXE from the ZIP files. Copy this
  454.      program to an empty 1.44MB floppy.
  455.  
  456.   2. Copy the one or more ZIP files to the floppy. INSTALL will look for
  457.      all files with the name LASI51*.ZIP.
  458.  
  459.   3. Copy PKUNZIP.EXE, PKUNJR.EXE or Info-ZIP's UNZIP.EXE to the floppy.
  460.      Note that PKUNZIP.EXE and PKUNJR.EXE may be used for personal use, but
  461.      may not be freely distributed (particularly commercially) without
  462.      PKWare's permission.
  463.  
  464.   The INSTALL program is smart enough to look for multiple ZIP files, any
  465.   of the unzippers listed above, and certain additional custom files that
  466.   might have been included on the original disk.
  467.  
  468.  
  469.   Distribution Rules
  470.   ------------------
  471.   ■ Files in a system distribution should NOT be MODIFIED. The files are
  472.     usually configured to work with each other in that particular release.
  473.  
  474.   ■ Files should NOT be distributed INDIVIDUALLY. Most programs are
  475.     intended to work with other files in the same distribution. The help
  476.     files are a good example of this.
  477.  
  478.   ■ If extracted and recompressed, which is highly discouraged, the DATES
  479.     AND TIMES OF THE FILES MUST NOT BE CHANGED. This is the way that
  480.     different revisions are kept orderly. Notice that the time stamp on a
  481.     file is actually its release number.
  482.  
  483.   ■ Any custom files to be distributed with LASI MUST be included on a
  484.     floppy disk or network SEPERATELY. DO NOT put any additional files into
  485.     the set of LASI system files.
  486.  
  487.   Finally, a person distributing LASI is allowed to charge a fee that will
  488.   cover their distribution costs (labor, floppy, packing, postage, etc.).
  489.   Any fees are ultimately left to the spirit of LASI as being free for
  490.   personal and educational use.
  491.  
  492.  Terms of Licensing
  493.  
  494.   The LASI System has been written for the author's own professional use in
  495.   making integrated circuits, and therefore was not intended as profit-
  496.   making software.
  497.  
  498.   For this reason, LASI is NOT SHAREWARE in the usual sense; that is,
  499.   everybody is expected to pay if they use the software. LASI is FREE for
  500.   NON-PROFIT applications by individuals or organizations. There are no
  501.   copying or installation protections in LASI. It does have the author's
  502.   copyright notice encrypted into it, so that no one can sell it for their
  503.   own profit.
  504.  
  505.   However, if LASI is used to OBVIOUSLY MAKE A PROFIT, then a VOLUNTARY
  506.   license fee PER COMPUTER on which it is installed is requested. The
  507.   license fee is $99 for the first computer and discounts rapidly with each
  508.   additional installation. To determine the license fee for a number of
  509.   computers, run the FORPRFIT.EXE program included with LASI. This license
  510.   is for a period of ONE YEAR and should be made payable to the author.
  511.  
  512.   When LASI is licensed, FREE UPDATES including any NEW PROGRAMS will be
  513.   provided during the license period, and will continue to be provided if
  514.   the license is renewed.
  515.  
  516.   This fee is not just to ease the conscience of someone making a profit
  517.   and using LASI for free, but helps to pay for improving LASI with new
  518.   hardware and software and sending out updates. The fee is not expected to
  519.   be a compensation for the endless hours of coding and debugging that have
  520.   gone into producing LASI.
  521.  
  522.  Terms of Liability
  523.  
  524.   The LASI System is constantly being revised and is distributed on an
  525.   "as is" basis. Since the programs are quite complicated, software bugs
  526.   may be found, often when someone does something that only rarely would be
  527.   done. IF YOU THINK YOU HAVE FOUND A REAL BUG, REPORT IT TO THE AUTHOR.
  528.   The bug hopefully will be fixed, and YOU WILL RECEIVE A CORRECTED VERSION
  529.   AT NO CHARGE.
  530.  
  531.   Neither the author nor any person distributing the LASI System assumes
  532.   any responsibility for whomever uses the programs or for how the programs
  533.   are used. Also, neither the author nor any person distributing the
  534.   software assumes any liability for any losses monetary or otherwise
  535.   incurred related to the use of the programs.
  536.  
  537.  Getting Updates
  538.  
  539.   Unlike commercial software which is usually frozen, bugs and all, LASI
  540.   gets updated often. Experience has shown that LASI is significantly
  541.   updated every few months, or sooner if the situation requires it. If you
  542.   have a version more than a year old, it is almost certainly out of date.
  543.  
  544.   Licensed users will receive free updates during their license period.
  545.   Beyond the license period updates generally will have to be requested.
  546.  
  547.   Anyone using LASI can get a FREE update directly from the author. The
  548.   author maintains a database of know users, but it is impossible to send
  549.   updates to everyone unless requested.
  550.  
  551.   Anyone who got LASI from other sources should be kept updated by those
  552.   who gave them the software. Updating secondary users is a responsibility
  553.   that should be taken seriously.
  554.  
  555.   LASI is available on the Internet at a number of sites, mainly at
  556.   technical universities who maintain a repository for CAD or IC design
  557.   software. The list of sites can change frequently, as Internet changes
  558.   continuously. When doing a search look for "LASI" under topics such as
  559.   "CAD" or "VLSI".
  560.  
  561.   As a general rule, to be sure that you have the most recent software,
  562.   contact the author directly, by fax or phone.
  563.  
  564.  Final Comments
  565.  
  566.   With the proper software, personal computers have easily become adequate
  567.   for small to medium sized IC layout applications. LASI can give everyone
  568.   a personal computer based work station. This is particularly true for
  569.   students learning IC technology. In fact, it was (and is) the intention
  570.   of the author to eventually develop LASI as a complete educational
  571.   software system for use in IC design courses.
  572.  
  573.   Although it may be used that purpose, LASI was not really intended for
  574.   doing routine IC or ASIC design. Instead, LASI was developed as a
  575.   "fundamental" drawing system, which can generate arbitrary shapes that
  576.   might be needed in any kind of application, new or old.
  577.  
  578.   LASI was also intended for people who think in a particular spatial way,
  579.   as anyone working with it will soon realize. Using LASI develops spatial
  580.   thinking.
  581.  
  582.   LASI was really intended to put some fun and relaxation into doing layout
  583.   tasks by allowing a person to work when and where they want, and
  584.   therefore, it is believed, do better more creative work.
  585.  
  586.   Unlike commercial software, that may be designed by closed committee,
  587.   LASI receives feedback from its users. Since LASI is rather democratic
  588.   (within limits), people are encouraged to contribute ideas of their own,
  589.   or, even better, to write programs for themselves that expand LASI's
  590.   applications. Contact the author with your ideas or suggestions.
  591.  
  592.                                         Author of LASI:
  593.  
  594.                                         Dr. David E. Boyce
  595.                                         IC Technology Consultant
  596.                                         68 Bergdorf Rd.
  597.                                         Parish, NY 13131, USA
  598.                                         Fax/Phone: 315-625-7291
  599.  
  600. General Information
  601.  
  602.  About LASI Programs
  603.  
  604.   For anyone interested in the technical side of LASI, here are a few
  605.   details:
  606.  
  607.   LASI is written to be primarily DOS compatible. It has its own
  608.   independent graphics system (presently in 80386 assembly) and is not
  609.   dependent on the class libraries of Windows or other GUI. Its graphics
  610.   are hardware (VESA VGA) dependent, but are rewritable if some other
  611.   hardware standard needs to be supported.
  612.  
  613.   LASI 5.1 has a memory manager that keeps track of all the different types
  614.   of data being moved in and out and around memory. It uses standard well
  615.   documented XMS (not EMS) function calls. XMS is supported under DOS in
  616.   HIMEM.SYS and under Windows enhanced mode in WIN386.EXE.
  617.  
  618.   Although the LASI uses mostly integer math, some fast floating-point math
  619.   is used during the drawing process. For this reason, the main drawing
  620.   program is compiled in two different versions:
  621.  
  622.     For use with a coprocessor, the source code is compiled with inline
  623.     coprocessor instructions, making LASI587.EXE.
  624.  
  625.     For use without a coprocessor, the source code is compiled with
  626.     software floating-point math function calls, making LASI5A.EXE.
  627.  
  628.   To start LASI you actually run the small stub program LASI.EXE. This
  629.   program determines if there is a coprocessor present, and then writes
  630.   over itself with LASI587.EXE or LASI5A.EXE. Eventually LASI5A.EXE may be
  631.   dropped, since fewer and fewer PC's in the future will not have
  632.   coprocessor support.
  633.  
  634.  
  635.   The main drawing program is written in C and assembly language. The
  636.   source code consists of four separate modules:
  637.  
  638.     The main(), System Mode command and utility functions (C)
  639.     The Cell Mode command functions (C)
  640.     The drawing, file and hardware functions (C)
  641.     The elementary graphic functions (Assembly)
  642.  
  643.   The C modules are complied using Microsoft C/C++ in the large model, and
  644.   the assembly is compiled using Microsoft Macro Assembler 6.11. The four
  645.   object codes are linked together to build the main drawing program.
  646.  
  647.   The utility programs are also written using C/C++. These usually have a
  648.   standard text mode 80x25 16 color user interface, with occasional graphic
  649.   mode usage. A few utility programs have been compiled to need a 386 or
  650.   higher because they do quite a bit of integer computation. All utility
  651.   programs are compiled using software floating-point or emulated
  652.   coprocessor math function calls; they will all run the same with or
  653.   without a coprocessor.
  654.  
  655.  Advanced Installation
  656.  
  657.   Once you have mastered getting LASI up and running and probably know what
  658.   you are doing, you can "customize" LASI to your particular hardware or
  659.   drawing style. To do this, you can load certain operating system drivers
  660.   (if not already in use) or set certain parameters in the FORM.DBD file as
  661.   follows:
  662.  
  663.   ■ To use extended memory (XMS) you need to have DOS's HIMEM.SYS installed
  664.     in your CONFIG.SYS file. Version 3 or newer is recommended because
  665.     earlier versions have some bugs. LASI will detect XMS and will give you
  666.     all the memory it can find. If you wish to load drivers into high
  667.     memory (always), or if you have programs that use EMS, you also need
  668.     EMM386.EXE loaded. If you use QEMM-386 or 386MAX for memory management,
  669.     these should provide XMS or EMS capability, and LASI should work
  670.     properly.
  671.  
  672.   ■ If you have an appropriate line printer or plotter, set the FORM.DBD
  673.     file's "hcopy=" and "plot=" parameters to allow hard copies and plots
  674.     to be made. Use EDLIN.COM or MS-DOS 5 or 6's EDIT to change the
  675.     FORM.DBD file to prevent any word processor formatting characters from
  676.     being inserted into the FORM.DBD file. Read the General Information/
  677.     Form File topic and the HCPY command topic.
  678.  
  679.   ■ If your hard disk is not very fast, install SMARTDRV (from MS-DOS or
  680.     Windows) or a RAM drive by putting the driver into your CONFIG.SYS
  681.     file. If you use a RAM drive, turn on the RAM drive provision by
  682.     setting the "ramdrive=" parameter in the FORM.DBD file to the letter of
  683.     the RAM drive. Read the General Information/Using RAM Drive topic.
  684.  
  685.   ■ Once you have been using LASI for some time you will have some favorite
  686.     commands that you use often. You can write these into the FORM.DBD file
  687.     under the "fkey=" keyword, and further customize LASI to your own way
  688.     of working. Read the General Information/Key Assignment topic.
  689.  
  690.   ■ If you are using a fairly standard layout using named layers, you might
  691.     want to add "layer=" keywords to the FORM.DBD file. This will give you
  692.     the convenience of referring to different layers by name, not by
  693.     number. Read the General Information/Layer Table topic.
  694.  
  695.  Attached Cells
  696.  
  697.   A cell that is kept in a common cell POOL that is shared among several
  698.   drawings is called an ATTACHED cell. The attached cell will be draw
  699.   normally, but will follow certain rules and will have some special
  700.   properties:
  701.  
  702.   ■ Attached cells are protected and may NOT be changed using Cell Mode.
  703.  
  704.   ■ Attached cells must have the same physical scaling as the drawing.
  705.  
  706.   ■ Attached cells must fit within the memory available for allocation by
  707.     the memory manager for boxes, paths and vertices.
  708.  
  709.   ■ Attached cells may NOT be renamed with the RENAME command.
  710.  
  711.   ■ Attached cells are searched for in the pool directory only, while
  712.     normal cells are searched for in the drawing directory only. If a cell
  713.     file (BP5) is not found, a "null" cell is drawn. LASI draws a null cell
  714.     as a dotted outline. A null cell is different from a cell that has
  715.     nothing in it, in that, there is no BP5 file for a null cell.
  716.  
  717.   ■ Attached cells may be added to the drawing directory in two ways:
  718.  
  719.     You can use the System Mode IMPORT command and give the imported cell
  720.     the SAME NAME. This copies the cell's BP5 file to the drawing directory
  721.     and turns the attached cell into a normal cell.
  722.  
  723.     You can use the IMPORT command and give the copied cell a NEW NAME.
  724.     This is preferred if you are going to modify the cell and use it in a
  725.     few places.
  726.  
  727.   ■ Attached cells may be smashed using the SMSH command. This effectively
  728.     adds an attached cell's boxes, paths and text to the current cell.
  729.  
  730.   ■ Attached cells may be used in the MAKE command. They will be added to
  731.     the new cell as would any other cell, but they will still be attached
  732.     cells.
  733.  
  734.   ■ The commands OUTL, FULL, INFO and SHOW work on attached cells.
  735.  
  736.   ■ If you are using a RAM drive, the first time you draw a attached cell
  737.     it will be copied to the RAM drive. It will still remain protected but
  738.     will draw faster.
  739.  
  740.   ■ Attached cell names appear in red in the LIST command cell listing.
  741.  
  742.   Cells with rank greater than 1 may be attached, but only the boxes, poly
  743.   and paths will be drawn and the cell will be forced to rank 1. The reason
  744.   for this is that LASI uses pointers to cells in its cell placement data.
  745.   These pointers would be different for different drawings. The TLCIN.EXE
  746.   program must be used to install any cells containing other cells. It is
  747.   usual that cells containing other cells are drawing specific and would
  748.   not be shared with other drawings anyway.
  749.  
  750.  Archiving
  751.  
  752.   It is highly recommended that you keep current backups or archives of
  753.   your drawings. You should use the TLC external data format. The TLC
  754.   format is written in ASCII text, and is very forgiving. It may in fact be
  755.   written or repaired using a text editor.
  756.  
  757.   To dump a complete drawing you only need to run TLCOUT.EXE in a drawing
  758.   directory, or alternately, to dump only a certain cell, give it the name
  759.   of the that cell and TLCOUT.EXE will make all the required cells. Backup
  760.   TLC files may be written directly to a floppy disk if they will all fit,
  761.   or they can be written to a hard disk and then to one or more floppy
  762.   disks.
  763.  
  764.   Once TLC files are made, a complete drawing or individual cells can be
  765.   reconstructed if necessary.
  766.  
  767.   It might be said that TLC is the true way of storing LASI drawings. The
  768.   internal data files (BP5 and CL5 files) are really a convenience to
  769.   reduce the startup time for LASI.
  770.  
  771.   Read the TLC Conversion topic.
  772.  
  773.  Backups
  774.  
  775.   LASI is designed with a lot of protection against drawing loss. It will
  776.   write your latest drawing files to your hard disk at certain times so
  777.   that if the computer is turned off or fails, or you simply make a mistake
  778.   or change your mind, your drawing will be mostly or totally recoverable.
  779.  
  780.   Whenever you exit Cell Mode all files are updated on the hard disk. This
  781.   includes the BP5 and CL5 files for the particular cell and the CELLS5.DBD
  782.   and CONSTS5.DBD files.
  783.  
  784.   There are two files CELLBKUP.BP5, CELLBKUP.CL5 that store your cell as it
  785.   was when you enter Cell Mode. These may be used to return a cell to the
  786.   same state that it was when you entered Cell Mode by copying them to the
  787.   cell's BP5 and CL5 files.
  788.  
  789.   Also, there are two files SORTBKUP.BP5 and SORTBKUP.CL5 that are updated
  790.   when you use the SORT command. You may use these files to restore if you
  791.   make a major mistake. These files are also updated by a timed automatic
  792.   backup that protects your drawing even if you leave it unattended for a
  793.   while and someone comes by and turns off the computer.
  794.  
  795.   Finally, there are two files DSSBKUP.BP5 and DSSBKUP.CL5 that are updated
  796.   whenever you use the DEL, SNAP or the SMSH command. You may recover from
  797.   an accidental delete, snap or smash by using the UNDO command.
  798.  
  799.   Important: If you have a disaster, the LAST cell you were working on will
  800.     be in these files. Simply copy the most current files to internal files
  801.     with the cell's name and the .BP5 and .CL5 extensions. DO NOT RESTART
  802.     LASI AND GOTO CELL MODE OR THE BACKUP FILES WILL BE REWRITTEN.
  803.  
  804.  Boxes/Paths/Cells
  805.  
  806.   A drawing is built of things called OBJECTS. In a drawing objects are
  807.   placed in a hierarchy, the position of an object in this hierarchy is
  808.   called its RANK.
  809.  
  810.   The lowest rank (0) objects are the basic constructions, BOXES, PATHS,
  811.   POLYGONS and TEXT.
  812.  
  813.   There are 64 layers available for boxes, paths and text, numbered 1-64.
  814.  
  815.   The higher rank (1-15) objects are the CELLS, which are the basic
  816.   structures of a drawing. Any cell can contain one or more objects of
  817.   lesser rank.
  818.  
  819.   All the cells in a drawing are called the CELL COLLECTION.
  820.  
  821.  
  822.   Boxes
  823.   -----
  824.   Boxes are simple objects that have the properties of four sides, each
  825.   orthogonal to the adjacent, and a layer. Only the position of the sides
  826.   and the layer may be changed.
  827.  
  828.  
  829.   Paths
  830.   -----
  831.   Paths are a set of vertices in some order which display as a set of
  832.   endwise merged rectangles, all with the same width, but usually different
  833.   lengths.
  834.  
  835.   A path with a zero width is called a polygon (poly for short).
  836.  
  837.   A polygon is special case of a path, and the term "path" can be used to
  838.   refer to either, except in the case where a zero width path is explicitly
  839.   indicated.
  840.  
  841.   A polygon need not be closed. A line of zero width however usually does
  842.   not reproduce anything useful in an integrated circuit, so polygons will
  843.   usually be closed intentionally.
  844.  
  845.   Vertices may have their position changed, and the vertices of a path may
  846.   be added or deleted. The width or layer of the path may be changed.
  847.  
  848.   Paths with a POSITIVE width are drawn with their ends INLINE with their
  849.   end vertices, while paths with NEGATIVE widths are drawn with their ends
  850.   EXTENDED out half the width from the vertices.
  851.  
  852.   Paths with extended ends should be used if the layout is to be converted
  853.   to CIF. The TLC2CIF converter program will however change the end type of
  854.   necessary.
  855.  
  856.   Paths with either end type can be used if conversion will be to GDS,
  857.   since GDS has a path end attribute.
  858.  
  859.   A path with width can have no more than 250 vertices. A polygon can have
  860.   no more than 500 vertices.
  861.  
  862.  
  863.   Text
  864.   ----
  865.   Text is a form of path. Instead of displaying vertices, it displays as a
  866.   string of text characters. Text is stored as a special path, and many of
  867.   the commands that affect paths work on text objects. Text can have a
  868.   layer and a size which corresponds to a normal path's width. A single
  869.   text object can have up to 40 characters.
  870.  
  871.  
  872.   Cells
  873.   -----
  874.   All drawing is done within a cell. A cell has a NAME by which it is
  875.   called for drawing or for insertion into other cells. The name must be
  876.   acceptable as a DOS filename, since cell files will be made using that
  877.   name. A cell is named when it is created, but it may be renamed. A rank
  878.   is also assigned when a cell is created, which later can be changed.
  879.  
  880.   The LASI drawing program uses cell ranking to organize drawings so that
  881.   computer memory usage is better controlled and reentrant constructions
  882.   (i.e. cells nested in themselves, directly or indirectly) are avoided.
  883.  
  884.   In general, the overall layout drawing will be the highest ranking cell.
  885.   There however may be many cells of that rank, for perhaps different
  886.   versions of the same integrated circuit.
  887.  
  888.   Cells have a property known as AREA. The area of a cell is the region
  889.   within the rectangle that fully encloses all the objects that make up the
  890.   cell. A cell's OUTLINE is the perimeter of the area, or simply the
  891.   enclosing rectangle. Cells may be drawn in full, or may be drawn as only
  892.   their outline. Cells in a part of a drawing that is not currently being
  893.   worked on may be outlined to improve clarity and to speed up redrawing.
  894.  
  895.   When a cell is drawn as its outline it may be manipulated with certain
  896.   restrictions as though it was drawn fully. Read the CGET, CPUT, CMOV,
  897.   OUTL and FULL command topics.
  898.  
  899.   Cells may also have their IMAGE turned on. Drawing of cell images can be
  900.   toggled by the I key. A cell's image is just its outline that is drawn in
  901.   addition to any boxes, paths, or other cells. However, the cell is still
  902.   normal cell. All the commands that work on normal cells work on a cell
  903.   with its image displayed. A cell image is independent of which layers (if
  904.   any) are viewed, and shows exactly where a cell's area is located.
  905.  
  906.  Command Menus
  907.  
  908.   Most operations are done by selecting a command from a menu on the side
  909.   of the screen. Placing the mouse cursor on a button depresses the button.
  910.   Clicking the LEFT (or RIGHT) mouse button activates the command.
  911.  
  912.   In Cell Mode there are two different menus. To flip between them, simply
  913.   click the RIGHT mouse button.
  914.  
  915.   In Cell Mode the current resident command is shown at the bottom left of
  916.   the screen.
  917.  
  918.   The colors usually mean something. Generally the cyan commands affect
  919.   boxes, paths and text, the yellow affect cells, and the green both, with
  920.   many exceptions. Commands intended to stand out are generally red. Some
  921.   commands are colored just to look pretty or give good contrast.
  922.  
  923.  Command Types
  924.  
  925.   The commands that are found on the menus do many things. The commands all
  926.   have help topics in Command Information.
  927.  
  928.   The System Mode commands either operate immediately or request additional
  929.   information to be typed in. The commands may be aborted or continued to
  930.   completion.
  931.  
  932.   Cell Mode commands may be grouped into four types:
  933.  
  934.   ■ RESIDENT commands are commands that stay in place until you change to
  935.     another resident command. There is always a default resident command
  936.     when working on a drawing.
  937.  
  938.     Examples of resident commands are:  ADD, GET, PUT, CGET and CPY.
  939.  
  940.   ■ ONE-TIME (or ONCE) commands are commands that abort any other commands
  941.     that may be in progress, but are not retained.
  942.  
  943.     Examples of ONE-TIME commands are:  SORT, FILL, LAYR, and OBJ.
  944.  
  945.   ■ WINDOW commands are commands that change the window or some parameter
  946.     of the display. These commands are nestable within a resident command.
  947.     For example, you can reposition the window an unlimited number of times
  948.     while you still have the second point of a MOV pending. The command
  949.     listed at the bottom of the display changes color to tell you that you
  950.     are in a nested command that is asking for an input.
  951.  
  952.     The window commands are:  ARROWS, CNTR, DGRD, DRAW, FIT, GRID, OPEN,
  953.     RDRW, VIEW, WGRD, RSTR, SAVE, XPND and ZOOM.
  954.  
  955.   ■ DOS commands are commands that run other programs with LASI as the
  956.     shell. These commands can cause "out of memory" or "not available"
  957.     errors if you don't have enough RAM available.
  958.  
  959.     The DOS commands are:  DOS, HCPY, PLOT, TLCIN, TLCOUT and help F1.
  960.  
  961.   In System Mode, information is requested at the left of the screen. In
  962.   Cell Mode information is usually requested on the last line. Any default
  963.   values will be retained by pressing ENTER or ESC.
  964.  
  965.   Usually, ENTER continues the command and ESC aborts the command.
  966.  
  967.   Important: Any command that is expecting a cursor input point can be
  968.     cancelled by selecting the same command, a new command or by pressing
  969.     ESC. Window commands can be cancelled within a resident command without
  970.     cancelling the resident command.
  971.  
  972.  Common Problems
  973.  
  974.   When LASI is started it checks for the FORM.DBD file, the CONSTS5.DBD
  975.   file, the CELLS5.DBD file and the text font file (usually TFF.DBD). It
  976.   also checks the hardware for the mouse and the kind of video adapter you
  977.   have. If there is a problem LASI should tell you. This may not be perfect
  978.   and if you crash first suspect the CONSTS5.DBD file. It may be incorrect.
  979.   Simply erase it from your drawing directory. LASI will make a new one.
  980.   CONSTS5.DBD files made with older versions of LASI are not guaranteed to
  981.   work with newer versions of LASI.
  982.  
  983.   If you have installed LASI on one hard disk, but are making drawings in
  984.   drawing directories on another disk, LASI may not be able to find
  985.   programs and data unless the DOS environment variable "LASIDRIVE=drive:"
  986.   has been set to the logical disk drive where LASI is installed.
  987.  
  988.   If you crash or you get a "Not Available" message, when running programs
  989.   such as TLCIN.EXE, TLCOUT.EXE or PGLPLOT.EXE with the LASI drawing
  990.   program as the shell, you probably have run out of conventional memory.
  991.  
  992.   LASI checks memory, and refuses to execute if it thinks that there is too
  993.   little available, but it is not perfect because it really doesn't know
  994.   how much memory a program needs. DOS eventually determines this.
  995.  
  996.  
  997.   The LASI System is a very complex and evolving system. It is possible
  998.   that situations will occur with different hardware and software
  999.   environments that will cause difficulties. Once authentic problems are
  1000.   reported they are usually fixed. Consult the author or your source of
  1001.   this software for the latest version.
  1002.  
  1003.  Drawing Display
  1004.  
  1005.   When operating in Cell Mode the drawing area occupies most of the screen.
  1006.   The command menu appears on the right of the screen, and status
  1007.   information is displayed on the top and bottom of the screen.
  1008.   ≡≡15
  1009.  
  1010.       ┌─ Cell(Rank)──── Information ────────────────────────┬─────────┐
  1011.       ├─ View(layers)── Open(layers)───── Toggle Buttons ───┤         │
  1012.       │                                                     │         │
  1013.       │                                                     │         │
  1014.       │                                                     │         │
  1015.       │                                                     │         │
  1016.       │                 Drawing Area                        │  Menu   │
  1017.       │                                                     │  Area   │
  1018.       │                                                     │         │
  1019.       │                                                     │         │
  1020.       │                                                     │         │
  1021.       ├─ Command (point) ──── Cursor Position ──────────────┤         │
  1022.       └─ wGrd ─── dGrd ─── Obj ─── Layr ─── Wdth/Size ──────┴─────────┘
  1023.           (Input and Messages)
  1024.  
  1025.  
  1026.   The UPPER TOP LINE shows the NAME of the CELL and its RANK on the left.
  1027.   Near the center is an area where information is displayed that remains
  1028.   until some status is changed.
  1029.  
  1030.   The LOWER TOP LINE shows the layers that are viewed and opened, or if the
  1031.   Layer Table is being used. At the right, are the TOGGLE BUTTONS for
  1032.   alternate grid (A), path center line (C), distance marker (D), cell image
  1033.   (I), cell outline name (N), the octagonal mode (O), the origin reference
  1034.   (R) and the text reference (T) toggles. Read General Information/Toggle
  1035.   Buttons, Key Assignment and the OUTL, DRAW and TEXT commands.
  1036.  
  1037.   The UPPER BOTTOM LINE shows the name of the current COMMAND and the point
  1038.   to be inputted. Commands usually display in CYAN, but nested "window"
  1039.   commands display in RED.
  1040.  
  1041.   The upper bottom line also shows the current POSITION of the mouse
  1042.   cursor. The lowercase "w" or "u" prefixing X or Y indicates that the
  1043.   cursor is in the "working" or the "unit" grid.
  1044.  
  1045.   The LOWER BOTTOM LINE normally displays the working and dotted grids, the
  1046.   name or type of object that will be added with the ADD or TEXT command,
  1047.   the layer if the object is a box, path or text, and the width or size of
  1048.   a path or text.
  1049.  
  1050.   The lower bottom line also serves as an input line for keyboard inputs
  1051.   and direct X and Y coordinate inputs.
  1052.  
  1053.   The bottom line displays temporary messages and certain warning messages
  1054.   that may be sent to indicate a problem, for example, "RAM Drive Full or
  1055.   Unavailable ...", which can occur quite often.
  1056.  
  1057.  Drawing Speed
  1058.  
  1059.   On a fairly slow computer, drawing a large number of cells can take a
  1060.   considerable amount of time. LASI has several features to allow you to
  1061.   work on larger drawings more effectively. These are as follows:
  1062.  
  1063.   ■ Pressing the ESC key or clicking the RIGHT mouse button causes a
  1064.     drawing sequence to abort in two stages. The first stage forces cells
  1065.     to be drawn as dotted outlines. The second stops the present cell's
  1066.     boxes and paths from being drawn.
  1067.  
  1068.     You don't have to redraw fully if you only want to locate a certain
  1069.     area. Just find where the area is, abort further drawing, and then use
  1070.     the ZOOM command.
  1071.  
  1072.     Likewise, you don't have to redraw fully if using the pan arrows. Just
  1073.     click the mouse two or three times on the pan arrow button with the
  1074.     right rhythm.
  1075.  
  1076.   ■ Cells may be replaced by their outline, which draws almost instantly.
  1077.     Read the OUTL and FULL command topics.
  1078.  
  1079.   ■ Cells that are too small to draw are drawn as their outline (dotted).
  1080.     This is NOT the same as putting the cell in outline, as listed above.
  1081.  
  1082.   ■ Objects that are too small to draw may be skipped by setting the
  1083.     resolution properly. Read the SET command topic.
  1084.  
  1085.   ■ Objects that are out of a drawing window are remembered and are skipped
  1086.     for certain commands.
  1087.  
  1088.   ■ The cell files may be automatically transferred to a RAM drive. Read
  1089.     the General Information/Using RAM Drive topic.
  1090.  
  1091.   ■ Finally, the new DPTH command can be used to limit the expansion of
  1092.     nested cells as they are being draw. Read the DPTH topic.
  1093.  
  1094.   Note: If you speed up drawing using first method, active box sides and
  1095.     active vertices are still drawn or marked, and active cells are still
  1096.     drawn as filled outlines. This is to indicate where an active object is
  1097.     located.
  1098.  
  1099.   Hint: If you do not use a RAM drive or a disk cache such as SMARTDRV, run
  1100.     a disk organizing program such as OPTIMIZER (COMPRESS) from PC Tools,
  1101.     SPEEDISK from Norton Utilities or DEFRAG from MS-DOS 6 on your hard
  1102.     disk frequently. If cell files become badly fragmented, the drawing
  1103.     time for LASI can become incredibly long.
  1104.  
  1105.  Drawing Universe
  1106.  
  1107.   The drawing area is 16,777,214 units wide since positions are determined
  1108.   by a 32-bit integer. This is 256 times larger than LASI version 4. This
  1109.   may not make sense for 32-bits, which is 4 billion units, until you know
  1110.   that LASI actually clips to 24 bits. This drawing space might be called
  1111.   the drawing's universe. This should be adequate for almost any
  1112.   application where LASI is intended.
  1113.  
  1114.   If objects are moved they may exceed the signed integer limits of +/-
  1115.   8,388,607 basic units. Since the positions are still 32-bit, objects that
  1116.   move beyond the limits can actually leave the drawing universe, and
  1117.   unless they are still active, they can't be moved back again. The SORT
  1118.   command in addition to ordering objects will move any objects back into
  1119.   the drawing. Read SORT.
  1120.  
  1121.   Commands affected:  CPY, FLP, MOV, ORIG, WMOV, QMOV, CMOV, ROT, STEP
  1122.  
  1123.  Error Messages
  1124.  
  1125.   Most messages are self-evident and appear in the dialog area in System
  1126.   Mode, on the bottom line in Cell Mode, or on the top of the screen in
  1127.   both modes when DOS calls are made. Some error messages are less obvious
  1128.   and may be explained as follows:
  1129.  
  1130.   "Out of DOS Memory!" means that you have run out of memory to hold the
  1131.   objects of a cell in conventional memory. You should only see this
  1132.   message if you are running LASI in DOS memory mode, that is, you have no
  1133.   XMS or you set the FORM parameter "mmode=dos". If you use XMS you should
  1134.   never see this message.
  1135.  
  1136.   "Out of XMS Memory!" means that LASI was unable to find an extended
  1137.   memory block to allocate. You may not have enough extended memory
  1138.   available either because you have too little physical memory, or you have
  1139.   partitioned it so that too little is available for XMS swapping. Another
  1140.   possibility is that you have set a max limit too small in a PIF file if
  1141.   you are running LASI under Windows. See Managing Objects.
  1142.  
  1143.   "Unable to Free DOS Memory!" means there is something wrong. LASI was
  1144.   unable to find a DMB (dos memory block) to swap to its corresponding EMB
  1145.   (extended memory block) so that another block could be swapped in. This
  1146.   should not happen because all DMB blocks are swappable.
  1147.  
  1148.   "Out of XMS Handles!" means that the system has run out of available
  1149.   "handles" to the areas in extended memory. When the operating system is
  1150.   booted, a certain number of handles are created. HIMEM.SYS for example
  1151.   creates 32 by default. Other XMS process you might be running may use
  1152.   some of them, leaving the rest for LASI, which will use several (See
  1153.   Managing Objects). The "/numhandles=" switch in HIMEM.SYS can be set to
  1154.   provide more handles. In general, the number of handles should not be a
  1155.   problem.
  1156.  
  1157.   "Unable to Load File(s)!" means that you are not able to load a cell
  1158.   file, usually because you have too little memory space available. This
  1159.   also indicates that a cell file (BP5 or CL5) may be missing, or you are
  1160.   trying to load a pooled cell.
  1161.  
  1162.   "Box/Path/Vertex/Cell Limit!" means that you are trying to add an object
  1163.   that exceeds the maximum number for its type.
  1164.  
  1165.   "Not Available!" means that LASI will not act as a "shell" to execute
  1166.   other programs ("child" processes).
  1167.  
  1168.   "Rank Error!" means that you are trying to add a cell that has rank
  1169.   greater than or equal to the cell on which you are working.
  1170.  
  1171.   "File Error!" means that a file error occurred at the DOS system level.
  1172.   Usually you tried to erase a file that did not exist, or you tried to
  1173.   rename a file that didn't exist or had a name conflict.
  1174.  
  1175.   "No Object!" means that you are trying to set an object to be added that
  1176.   cannot be found in the cell list.
  1177.  
  1178.   "Not Enough Space to Smash CELLNAME!" means that there isn't enough
  1179.   memory to hold the objects that would result if a cell is smashed.
  1180.  
  1181.   "RAM Drive Full or Unavailable ... Using Hard Disk!" means that you
  1182.   either have set a RAM drive in the FORM.DBD file that doesn't exist, or
  1183.   the RAM drive has run out of space for new files or new filenames. You
  1184.   should erase old files from your RAM drive or, if possible, reconfigure
  1185.   it in the DOS CONFIG.SYS file to provide more file space or a larger
  1186.   directory.
  1187.  
  1188.  File Types
  1189.  
  1190.   The LASI drawing program uses several files when it is run. These are:
  1191.  
  1192.   DBD (drawing basic data) Files
  1193.   ------------------------------
  1194.   CELLS5.DBD is the master list of cells used by LASI to know which cells
  1195.   it has to use in a drawing. The position of a cell in the file is an
  1196.   index used by LASI to keep track of which cells are used in other cells.
  1197.  
  1198.   FORM.DBD contains the configuration information used by LASI when it
  1199.   starts. Read the General Information/Form File topic.
  1200.  
  1201.   CONSTS5.DBD is a file that is maintained by LASI itself, and contains the
  1202.   information (or constants) that determine the present settings of many
  1203.   parameters. Although it is ASCII this file should not be edited.
  1204.  
  1205.   TFF.DBD and TFF2.DBD are a generic text font files. Theses files are
  1206.   binary files that contain patterns for the text characters. These files
  1207.   are generated by the MAKETFF.EXE utility and can only be modified using
  1208.   that utility. Otherwise, the user is free to make his own fonts following
  1209.   the directions under the topic Text Generation.
  1210.  
  1211.  
  1212.   Cell Data Files
  1213.   ---------------
  1214.   Cell data files are named with the name of a cell with a BP5 or a CL5
  1215.   extension.
  1216.  
  1217.   BP5 files are internal binary files that contain information on boxes,
  1218.   paths, text and vertices. These files are maintained by LASI and other
  1219.   utilities and are not to be externally edited.
  1220.  
  1221.   CL5 files are internal files that contain information on which cells are
  1222.   contained in other cells. Rank 1 cells do not produce these files. These
  1223.   files are not to be externally edited.
  1224.  
  1225.  Form File
  1226.  
  1227.   The configuration information for each drawing is in the FORM.DBD file.
  1228.   This file is read when LASI starts and MUST be in each drawing directory.
  1229.   You write it using a text editor in standard DOS text format. The
  1230.   FORM.DBD file is an IMPORTANT file because it is used by the LASI drawing
  1231.   program and most of the utility programs to configure to the particular
  1232.   drawing environment.
  1233.  
  1234.   The FORM parameters are keywords ending with "=" followed by a FORM
  1235.   variable. There is no SPACE character between the "=" and the variable.
  1236.   The parameters may be in any order, or be omitted. If a parameter is
  1237.   omitted a default parameter is used if possible.
  1238.  
  1239.   A comment may be added after any parameter if it is begun with a
  1240.   semicolon ";". A parameter line should not exceed 75 characters.
  1241.  
  1242.   The present FORM parameters are:
  1243.  
  1244.     ramdrive=D:,etc. or blank   (RAM drive logical letter name)
  1245.     hcopy=program               (name of bitmap program to be used)
  1246.     plot=program                (name of plotter support program)
  1247.     font=filename               (path\name of text font file)
  1248.     vmode=vga,svga,xvga         (forces the display mode)
  1249.     pool=pooldirectory          (path\name of cell pool directory)
  1250.     fkey=commandline            (progressively assigns F-keys)
  1251.     onecmd=commandname          (changes a resident to a one-time)
  1252.     mmode=xms,dos               (forces type of memory to use)
  1253.     layer=name number           (add layer table entry)
  1254.     misc=mono,lcd,rmb           (miscellaneous variables)
  1255.  
  1256.   ■ "ramdrive=" sets the letter name of a RAM drive that was created in
  1257.     memory.  Read the General Information/Using RAM Drive topic for more
  1258.     information.
  1259.  
  1260.   ■ "hcopy=" is the name of the screen hardcopy program. Read the General
  1261.     Information/Hardcopy and the HCPY command topics for information on
  1262.     these programs.
  1263.  
  1264.   Important: If you don't have a printer on the computer leave the hardcopy
  1265.     parameter "hcopy=" blank. This will prevent the system from possibly
  1266.     hanging up if the HCPY button is pushed.
  1267.  
  1268.   ■ "plot=" is the name of the plotter program.
  1269.  
  1270.     Presently there are 2 plotter programs:
  1271.  
  1272.       PGLPLOT.EXE     Hewlett-Packard Plotters (HP-GL format)
  1273.       PRNPLOT.EXE     Hewlett-Packard LaserJet/DeskJet (PCL format)
  1274.                       Epson Dot Matrix/Inkjet (ESC/P format)
  1275.                       Windows/Paintbrush/Word Processors (PCX format)
  1276.  
  1277.   ■ "font=" is the path\name of the text font file. If this parameter is
  1278.     left blank or if it is left out of the form file altogether, the
  1279.     default "\LASI5\TFF.DBD" will be assumed. Note that this variable may
  1280.     contain a DOS path. This lets you to make your own text font files and
  1281.     put them in any directory.
  1282.  
  1283.   ■ "vmode=" overrides various switches and the automatic sensing of VGA
  1284.     hardware. This can take multiple arguments separated by spaces or
  1285.     commas. The arguments are:
  1286.  
  1287.     "vga" forces 640x480 16 color graphics mode. (default)
  1288.  
  1289.     "svga" forces 800x600 16 color VESA standard graphics mode. You must
  1290.     have the hardware or the driver software that conforms to the VESA
  1291.     standard.
  1292.  
  1293.     "xvga" forces 1024x768 16 color VESA standard graphics mode. You must
  1294.     have the hardware or the driver software that conforms to the VESA
  1295.     standard.
  1296.  
  1297.   ■ "pool=" sets the directory where pooled cells are stored. If the pool
  1298.     directory is on a different logical drive than the drawing directory,
  1299.     precede the directory name with the drive letter. Omit "\" from the end
  1300.     of the pool directory name. If you don't have a pool directory leave
  1301.     this parameter blank or erase it from FORM.DBD altogether.
  1302.  
  1303.   ■ "fkey=" progressively assigns a command line to a function key,
  1304.     starting with F2 (F1 is always HELP.) through F10, SHIFT-F1 through
  1305.     SHIFT-F10, CTRL-F1 through CTRL-F10 and ALT-F1 through ALT-F10. Read
  1306.     the General Information/Key Assignment topic for more details.
  1307.  
  1308.   ■ "onecmd=" makes a resident type command into a one-time command. Use
  1309.     this if you find that certain commands are more convenient if they work
  1310.     only once. Command name is the same as listed on the menu and can be
  1311.     upper or lower case.
  1312.  
  1313.   ■ "mmode=" overrides the automatic memory selection. LASI will look for
  1314.     XMS memory as a first choice, then DOS (conventional memory). If for
  1315.     some reason you don't want to use the auto XMS selection, set this to
  1316.     "dos". This will not allow XMS to be selected if it is unavailable.
  1317.  
  1318.   ■ "layer=" sets up the layer name table. read General Information/Layer
  1319.     Table for how to use layer tables.
  1320.  
  1321.     Hint: Any line not beginning with a keyword will be read as a comment.
  1322.     You can insert your own notes or turn parameters on and off just by
  1323.     preceding a valid parameter with a character such as a semicolon.
  1324.  
  1325.  
  1326.   ■ "misc=" sets unrelated parameters. Presently there are 3 variables
  1327.     listed below. "misc=" sets only a single  variable at a time, but may
  1328.     be used as many times as needed to set parameters. Entries and may be
  1329.     in any order.
  1330.  
  1331.     "mono" redefines the color palette to black, gray, white and bright
  1332.     white for use with monochrome monitors and laptops.
  1333.  
  1334.     "lcd" increases the thickness of the cursor so that it is more visible
  1335.     on a slowly changing LCD display.
  1336.  
  1337.     "rmb" (Right Mouse Button) switches the menus to the right mouse
  1338.     button, so that the mouse works as it did in previous versions of LASI.
  1339.  
  1340.  Hardcopy
  1341.  
  1342.   Hardcopies of the drawing display can be made by calling screen bitmap
  1343.   printing programs. These are small "child" programs that are included
  1344.   with the LASI System. These hardcopy programs can send the bitmap data
  1345.   directly to a printing device or can produce a file for later printing.
  1346.  
  1347.   Hardcopies are a quick way to print the screen. For high quality prints
  1348.   you should use the plotting programs and the PLOT command.
  1349.  
  1350.   Any hardcopy program is installed by including its name followed by any
  1351.   arguments in the "hcopy=" parameter in the FORM.DBD file. Hardcopy
  1352.   programs are always kept in the \LASI5 directory. When LASI calls a
  1353.   hardcopy program, it attaches that path to the filename.
  1354.  
  1355.   Presently there are three hardcopy programs:
  1356.  
  1357.     ESCHCPY.COM     Epson type printers (ESC/2 format)
  1358.     PCLHCPY.COM     All Laser/H-P DeskJet printers (PCL format)
  1359.     PCXHCPY.COM     Windows/PaintBrush, etc. (PCX format)
  1360.  
  1361.   ESCHCPY and PCLHCPY support B&W and color printing.
  1362.  
  1363.   All hardcopy programs use arguments that set various options. To find out
  1364.   the arguments that each program uses just run the program from the DOS
  1365.   command line.
  1366.  
  1367.   Notes:
  1368.  
  1369.   1. You may want to move the image's position on the page. To do so, use
  1370.      the "{m" and "}m" command line arguments.
  1371.  
  1372.   2. When you make a hardcopy the "s" or "x" argument is checked by the
  1373.      LASI drawing program and the display will default to SVGA if "s" is
  1374.      present or XVGA if "x" is present. This is INDEPENDENT of the video
  1375.      mode where you are running LASI. Your video display must be VESA
  1376.      compatible, or this may crash.
  1377.  
  1378.   3. If you are copying in SVGA or XVGA you will get a correspondingly
  1379.      larger hardcopy than with VGA that will have more detail. This may
  1380.      overrun your paper in some cases. You can try to correct this in two
  1381.      ways:
  1382.  
  1383.      If you add a fractional number (<1.0) beginning with a decimal point
  1384.      to the "hcopy=" command line, the hardcopy screen will be resized by
  1385.      that fraction. Example: "hcopy=eschcpy .75" will resize the drawing to
  1386.      3-quarters the usual size. This does not affect the hardcopy program,
  1387.      but causes LASI itself to redraw smaller.
  1388.  
  1389.      You can chop the print area by adding the "l" and "w" (length and
  1390.      width) arguments to the command line. This can prevent your printer
  1391.      "hitting its stops" or making multiple pages.
  1392.  
  1393.   4. If you are operating in VGA, SVGA or XVGA mode, the hardcopy that you
  1394.      get may not have a correct 1:1 aspect ratio if you specify the "g"
  1395.      (generic printer) argument with the ESCHCPY program.
  1396.  
  1397.   5. If you are making a data file, a small window will open and close in
  1398.      the lower left of the screen requesting a file name.
  1399.  
  1400.   6. The LASI drawing program redefines the color index 5 from dark magenta
  1401.      to orange. The ESCHCPY and PCLHCPY allow you to redefine colors by
  1402.      adding a number argument. If you redefine the orange color refer to it
  1403.      by index 5.
  1404.  
  1405.  
  1406.   Read the HCPY command topic.
  1407.  
  1408.  Hardware
  1409.  
  1410.   The LASI version 5.1 will run in some configuration on almost any IBM
  1411.   compatible computer with an 80386 or higher CPU and common basic hardware
  1412.   options. For small to medium layouts, LASI will run quite nicely on a 386
  1413.   or 486 "average" PC with clock speed of 25 MHz or more; it will really go
  1414.   on a Pentium with VESA or PCI bus.
  1415.  
  1416.   This is the minimum hardware required:
  1417.  
  1418.     An 80386 or higher
  1419.     4 MBytes of memory
  1420.     A hard disk drive
  1421.     VGA video and color monitor (see below)
  1422.     A mouse
  1423.  
  1424.  
  1425.   Memory
  1426.   ------
  1427.   The LASI drawing program takes a minimum of about 300KB. If XMS is not
  1428.   detected or the FORM parameter "mmode=" is set to "dos", drawing object
  1429.   data will be kept in conventional memory (<640KB). If you don't have full
  1430.   conventional memory, the size of your drawing will be excessively memory
  1431.   limited. You will also not be able to run certain programs from within
  1432.   LASI. Lack of actual physical memory is probably not a problem with a 386
  1433.   or better since most PCs have several megabytes of memory. What can be a
  1434.   problem is using too much conventional memory for various drivers and
  1435.   resident (TSR) programs.
  1436.  
  1437.   You should always use DOS's HIMEM.SYS and EMM386 or some memory manager
  1438.   like QEMM-386 or 386MAX to make the upper memory area (640KB to 1024KB)
  1439.   available to save memory below 640KB.
  1440.  
  1441.   LASI 5.1 needs extended memory for both its virtual memory manager and
  1442.   possibly for a RAM drive. Since a RAM drive can be configured to use a
  1443.   certain amount of memory, the rest will be available for the virtual
  1444.   memory manager to use for object data. Just how to partition memory
  1445.   depends on the amount of memory you have, and on the type of drawings you
  1446.   have. Usually 4MB is enough for most work, but more memory is always
  1447.   better.
  1448.  
  1449.  
  1450.   Hard Disk Drive
  1451.   ---------------
  1452.   While working on a drawing, the basic drawing files (or cell files) need
  1453.   to be swapped back and forth to the disk. The hard disk drive should be
  1454.   as fast as possible. Each cell may use one or two files for storage. One
  1455.   cell file (.BP5) can be as large as 1.5MB. Files this large will be rare.
  1456.   Generally, LASI makes a lot of small files.
  1457.  
  1458.   Many people don't realize that the number of files that you can have on a
  1459.   disk does not go up linearly with the disk size. Due to the 16-bit
  1460.   (65536) limitation  of the number of entries in the FAT (file access
  1461.   table) that DOS makes on a drive, the "cluster" size on a drive will be
  1462.   2048, 4096 or 8192 bytes. Each file uses at least one cluster, so that if
  1463.   you have many small files you can use more disk space than you think.
  1464.  
  1465.   Most new large drives will usually be partitioned into more than one
  1466.   "logical drive", the actual letter assigned to a drive. Sometimes a
  1467.   smaller drive partition can actually be more economical. If you have
  1468.   DOS 6, run SCANDISK.EXE. As it runs, it will tell you the number of
  1469.   clusters on your hard disk. You might find that a 100MB drive will hold
  1470.   almost as many LASI files as a 400MB drive.
  1471.  
  1472.  
  1473.   VGA Adaptor with Color (or Mono) Monitor
  1474.   ----------------------------------------
  1475.   LASI uses some direct hardware access so the VGA board must be register
  1476.   compatible to the IBM standard. If you have VGA graphics, graphics will
  1477.   default to VGA 640x480 16 color mode. You may override the automatic
  1478.   default by setting a "vmode=" parameter in the form file.
  1479.  
  1480.   If you have a VGA board and a monitor capable of SVGA 800x600 16 color
  1481.   graphics or XVGA 1024x768, you can run LASI in that mode by setting
  1482.   "vmode=svga" or "vmode=xvga" in the form file. You must have a board that
  1483.   is VESA (Video Electronics Standards Association) compatible with
  1484.   supplemental driver software (furnished by the board's maker), or the
  1485.   board must have a BIOS that is directly compatible with the VESA
  1486.   standard. LASI uses VESA modes 102h and 104h. Most new boards will meet
  1487.   these requirements.
  1488.  
  1489.   Note: The XVGA 1024x768 graphics mode is somewhat poorly supported in
  1490.     many video boards. LASI will try to use the board hardware directly and
  1491.     bypass the BIOS. Hardware seems more consistent than BIOS among boards.
  1492.     If you get strange results in XVGA use SVGA or VGA instead.
  1493.  
  1494.   If you have a monochrome monitor with a gray scale VGA display, you can
  1495.   redefine the color palette to black, gray, white and bright white by
  1496.   adding "mono" to the "vmode=" parameter in the form file. You may have to
  1497.   trick your VGA board into thinking that it has a color monitor by
  1498.   grounding the ID bit 0 (pin 11 on the 15 pin D connector).
  1499.  
  1500.   Laptop computers with a VGA display will also run LASI. A possible
  1501.   problem when using a laptop is that the LCD display isn't fast enough to
  1502.   track the mouse cursor. To improve this, the cross shaped mouse cursor
  1503.   may be expanded to more pixels to improve the cursor's visibility if
  1504.   "lcd" is added to the "vmode="parameter.
  1505.  
  1506.   Because LASI writes directly to the hardware, you will get faster
  1507.   graphics if you use a 16-bit graphics board, instead of an old 8-bit
  1508.   board. In ISA (AT) type computers of any CPU speed, the (ISA) bus speed
  1509.   is usually still 8 MHz. This limits the drawing speed of LASI and most of
  1510.   any other graphical software, including Windows or OS/2.
  1511.  
  1512.   Some video boards come with a version of their BIOS (the programming that
  1513.   lets DOS connect to the actual hardware) that can be loaded into RAM and
  1514.   not read from a ROM. This should be used if memory space permits,
  1515.   particularly if LASI writes text slowly or if the mouse seems to act
  1516.   lethargic.
  1517.  
  1518.   There are also new bus architectures that raise the bus speed when
  1519.   servicing video, or have an independent high-speed bus, such as the VESA
  1520.   Local Bus (VL-Bus) or the PCI bus. If your graphics board can work at a
  1521.   higher speed or is VL-Bus or PCI compatible, your LASI drawing speed will
  1522.   GREATLY improve.
  1523.  
  1524.   If you are buying a computer to run LASI (or anything else), it is
  1525.   recommended you get one with a VL-Bus or the PCI bus. Note also that
  1526.   "accelerated" video boards are available, but are often designed to speed
  1527.   up Windows or specific CAD systems, like AutoCAD, using special driver
  1528.   software. These may not help LASI very much.
  1529.  
  1530.  
  1531.   Mouse
  1532.   -----
  1533.   Pretty much everything is done graphically by mouse. All mouse function
  1534.   calls conform to Microsoft Mouse Protocol. LASI does little more than
  1535.   look for button pushes and return screen location. The cursors are drawn
  1536.   directly, so LASI is very mouse tolerant. Any mouse that has at least two
  1537.   buttons, has driver software that works with VGA, and understands some
  1538.   basic Microsoft mouse driver function calls (Int 33, nos. 0-5, 10 and 11)
  1539.   should work with any of the LASI programs.
  1540.  
  1541.   To use the mouse, first be sure that the mouse driver software that came
  1542.   with your mouse is installed according to your mouse's instructions, and
  1543.   that you know that the mouse works with most other programs. Using
  1544.   current Microsoft mouse driver software and a Microsoft compatible mouse
  1545.   is usually best.
  1546.  
  1547.   The LASI drawing program reads "mickeys" directly (actual movement count)
  1548.   and moves the cursor accordingly. Certain mouse driver sensitivity
  1549.   switches (/H /V) won't work when this is done, but sensitivity can be set
  1550.   with the SET command. The utility programs use the standard mouse driver
  1551.   functions to read the mouse position. The software mouse sensitivity
  1552.   controls that come with your mouse should work with these programs. Read
  1553.   the SET command topic.
  1554.  
  1555.  
  1556.   Optional but very desirable:
  1557.  
  1558.     A math coprocessor
  1559.     A printer (dot matrix, inkjet or laser)
  1560.  
  1561.  
  1562.   Math Coprocessor (80387, etc)
  1563.   -----------------------------
  1564.   Most of the math is done in integer form, which is handled by the CPU
  1565.   directly. A certain amount of floating point arithmetic is also done.
  1566.   If you run LASI.EXE, it will examine your hardware and overlay either
  1567.   LASI587.EXE or LASI5A.EXE. If you try to run LASI587.EXE without a
  1568.   coprocessor, the program will return a system error. If you don't have a
  1569.   coprocessor and can't afford one, LASI5A.EXE will always run, but it
  1570.   draws about half as fast in certain situations as LASI587.EXE and uses a
  1571.   little more memory.
  1572.  
  1573.   If you have a 486DX or Pentium CPU the coprocessor is already there.
  1574.   LASI.EXE will detect this and always run LASI587.EXE as your drawing
  1575.   program.
  1576.  
  1577.  
  1578.   Printer
  1579.   -------
  1580.   Hard copies of the screen can be made directly from LASI. Making
  1581.   hardcopies is very handy to examine and keep track of your drawings.
  1582.   Hardcopy support is provided for Epson Generic, FX and LQ type printers
  1583.   and H-P LaserJet/DeskJet type printers. Most printers seem to conform to
  1584.   these standards. The new COLOR inkjet printers make very nice hardcopies
  1585.   and are supported by the ESCHCPY.COM and PCLHCPY.COM programs. Read the
  1586.   HCPY command topic.
  1587.  
  1588.   LASI 5.1 has a new plotter program PRNPLOT.EXE that makes high-resolution
  1589.   prints on H-P LaserJet/DeskJet and Epson ESC/P type printers. The program
  1590.   supports printing in color.
  1591.  
  1592.   If your printer doesn't work contact the author to see if anything can be
  1593.   done about it. Have technical information available on your printer and
  1594.   be sure that it is capable of bitmap graphics.
  1595.  
  1596.  Help on Help
  1597.  
  1598.   If you are reading this help topic you are probably running the LASI Help
  1599.   and Information program LHI.EXE. LHI is called from LASI by pressing F1.
  1600.   If the mouse cursor is on a COMMAND NAME the name will be passed to LHI
  1601.   and that command's help information will come up immediately. If the
  1602.   cursor is in the Toggle Button area in the upper right of the screen,
  1603.   "Toggle Buttons" will also be called.
  1604.  
  1605.   LHI.EXE will accept optional DOS command line arguments as follows:
  1606.  
  1607.         lhi [drive\path\filename] [topic1 or topic2] [topic2]
  1608.  
  1609.   [Drive\path\filename] is the full name of the help file to read. The
  1610.   filename must contain the extension ".LHI" or the argument will be
  1611.   considered as a topic argument. Leaving this argument out causes a
  1612.   default to "\LASI5\LHI.LHI".
  1613.  
  1614.   The [topic1 or topic2] argument is the topic for the first search. This
  1615.   may be a primary topic such as "Command Information" or a secondary topic
  1616.   such as "Copy". If the topic is more than one word enclose it in double
  1617.   quotes ("") as DOS requires.
  1618.  
  1619.   The [topic2] argument is the subtopic of topic1. This is only necessary
  1620.   if topic2 appears as a subtopic of topic1 in more than one place in the
  1621.   help file. For example, if "Introduction" appears more than once, you
  1622.   must specify the primary topic as topic1 and then "Introduction" as
  1623.   topic2.
  1624.  
  1625.   All arguments may be upper or lower case.
  1626.  
  1627.  Key Assignment
  1628.  
  1629.   CTRL-END exits to DOS from Cell or System Mode.
  1630.   ENTER enters information and does a DRAW command.
  1631.   CTRL-ENTER toggles between numbered layers and the layer table
  1632.   ARROWS move the drawing window in that direction.
  1633.   TAB toggles the cursor between a small cross and crosshairs.
  1634.  
  1635.   A toggles the cursor between working and unit grid.
  1636.   C toggles the path center line on and off.
  1637.   D toggles the distance marker on and off.
  1638.   I toggles the cell image on and off.
  1639.   N toggles the outline name on and off.
  1640.   O toggles the octogonal cursor mode on and off.
  1641.   R toggles the 0,0 reference mark on and off.
  1642.   T toggles the text reference point on and off.
  1643.  
  1644.   The above keys can also be toggled by clicking the LEFT (or RIGHT) mouse
  1645.   button on the corresponding button in the Toggle Button area of the
  1646.   display.
  1647.  
  1648.   X or Y opens a PKE coordinate entry.
  1649.   Z sets the measurement zero point.
  1650.  
  1651.   SPACE gives a measurement from the zero point.
  1652.   ALT (while pressed) changes the cursor between working and unit grid.
  1653.   CTRL (while pressed) causes the mouse cursor to work the same on outlined
  1654.        cells as it does on fully drawn cells.
  1655.  
  1656.   ESC has several uses:
  1657.  
  1658.     ESC aborts most commands at any stage of completion.
  1659.  
  1660.     ESC aborts drawing at various stages. Read the General
  1661.     Information/Drawing Speed topic for details.
  1662.  
  1663.     ESC causes a default value to be retained in any input that has a
  1664.     default value shown in the white box, even if a new value has been
  1665.     typed.
  1666.  
  1667.     ESC returns a NULL (no characters) to such questions as the name of a
  1668.     cell and therefore aborts the process.
  1669.  
  1670.   F1 always calls HELP.
  1671.  
  1672.   The remaining function keys are USER DEFINABLE.
  1673.  
  1674.   F2-F10, SHIFT-F1 through SHIFT-F10, CTRL-F1 through CTRL-F10 and ALT-F1
  1675.   through ALT-F10 may be defined by writing a command with any arguments
  1676.   into the FORM.DBD file.
  1677.  
  1678.   To assign the keys you simply write the command after an "fkey=" keyword
  1679.   in the FORM.DBD file. Keys are assigned progressively and the exact
  1680.   assignment can be checked by the FORM command.
  1681.  
  1682.   A command must be a command from the Cell Mode menus and must be followed
  1683.   by any arguments separated by commas.
  1684.  
  1685.   Examples:   "fkey=view,1-4 10 12"
  1686.               makes those layers visible.
  1687.  
  1688.               "fkey=wmov,0,0,100,100,0,0,10,0"
  1689.               moves objects in the 0,0 to 100,100 rectangle
  1690.               10 physical units to the right.
  1691.  
  1692.   The command line may be upper or lower case and no longer than 80
  1693.   characters. Any coordinates are in physical units. Any text generated in
  1694.   this way will be created with case preserved.
  1695.  
  1696.   Commands assigned to function keys are executed on a ONE-TIME basis even
  1697.   though normally the command may be a resident type of command.
  1698.  
  1699.   Commands work differently in System Mode. No System Mode command may be
  1700.   assigned to a function key. Certain commands in Cell Mode work
  1701.   differently also, and may not be assigned to function keys. These are
  1702.   LIST, CELL, SYS and UNDO.
  1703.  
  1704.   LASI should be smart enough to request additional arguments in the normal
  1705.   way if you list too few in the key assignment, or throw away any extras
  1706.   if you have too many. Coordinates are always requested in pairs.
  1707.  
  1708.  Keyboard Input
  1709.  
  1710.   When LASI needs typed input from the keyboard, whether it be alpha or
  1711.   numeric, a simple line editor is used to enter the information. This line
  1712.   editor works as follows:
  1713.  
  1714.   ■ A prompt will be displayed on the screen followed by a white input box.
  1715.  
  1716.   ■ The input box initially contains any default values and the "│" cursor
  1717.     at the right.
  1718.  
  1719.   ■ Press LEFT/RIGHT ARROW to move the text cursor left or right.
  1720.  
  1721.   ■ Press HOME/END to move the cursor to the beginning or end of a line.
  1722.  
  1723.   ■ Press BACKSPACE to erase a character to the left of the cursor.
  1724.  
  1725.   ■ Press DELETE to erase the character to the right of the cursor.
  1726.  
  1727.   ■ Press CTRL-BACKSPACE to completely erase a text line.
  1728.  
  1729.   ■ When you first select a parameter, typing any printable character other
  1730.     than SPACE or LEFT/RIGHT ARROW will replace the whole text line.
  1731.  
  1732.   ■ To restore the original value at any time, press ESC or press ENTER
  1733.     with the input box empty.
  1734.  
  1735.   ■ To enter a value press ENTER.
  1736.  
  1737.  Local Area Network
  1738.  
  1739.   It should be possible to use the cell pooling feature of LASI 5.1 to
  1740.   provide a common pool of basic cells over a Local Area Network (LAN)
  1741.   consisting of several PCs or work stations.
  1742.  
  1743.   Put the network server drive directory prefix in the "pool=" parameter in
  1744.   the FORM.DBD file. LASI will then load an attached cell's BP5 file from
  1745.   the server. If you are using a RAM drive locally, the file will then be
  1746.   stored on the RAM drive the first time you draw it, and will remain there
  1747.   until you quit LASI.
  1748.  
  1749.   You can also make a permanent copy of a pooled cell from the network
  1750.   using the IMPORT command.
  1751.  
  1752.   For transferring cells with rank greater than 1, you must use TLCIN.EXE.
  1753.   You can use the TLCIN command in System Mode and set the source to the
  1754.   server's directory. Any files transferred by TLC will become normal cells
  1755.   not attached cells. Care also must be taken not to write back to the
  1756.   server, since TLC works both ways.
  1757.  
  1758.  Layer Table
  1759.  
  1760.   LASI version 5.1 has two ways to select layers. You can use the numbered
  1761.   layer method LASI has always used, or you can set up a table of menu
  1762.   buttons that gives the numbered layers a name. This is usually preferred
  1763.   because it lets you remember more easily which layers are which masks.
  1764.  
  1765.   To use a layer table, simply write the layer name and number separated by
  1766.   a SPACE as the variable in the "layer=" parameter of the FORM.DBD file.
  1767.  
  1768.   Rules for layer table:
  1769.  
  1770.   ■ If the variable is not a name followed by a space and then a number
  1771.     (1-64), the parameter will be discarded.
  1772.  
  1773.   ■ If the parameter "layer=" is left blank, a blank table entry or menu
  1774.     button will be made.
  1775.  
  1776.   ■ Layer names are truncated to 4 characters to be CIF compatible.
  1777.  
  1778.   ■ Up to 28 layers can be entered into the table; their order in the table
  1779.     is determined by their order in the FORM file.
  1780.  
  1781.   Press the CTRL-ENTER keys to toggle between number or table modes. With
  1782.   the table toggled ON, whenever you click the VIEW or OPEN commands, the
  1783.   menu area of the Cell Mode display will be redrawn with the layer names
  1784.   and numbers as buttons. You can click a button and turn a layer on or
  1785.   off. When a layer is ON the layer name and number will be shown in a
  1786.   bright color. To exit, click the RIGHT mouse button or press ESC.
  1787.  
  1788.   The VIEW command doesn't take effect until you redraw. OPEN takes effect
  1789.   immediately after you exit the menu.
  1790.  
  1791.   The Layer Table also works with the LAYR, TLYR and CLYR commands. Simply
  1792.   click the button of the layer you want.
  1793.  
  1794.   Each Cell Mode rank has its own table layers that are viewed or opened.
  1795.   These are stored in the CONSTS5.DBD file and returned if you change ranks
  1796.   or if you quit LASI and restart again.
  1797.  
  1798.  Managing Objects
  1799.  
  1800.   The data for LASI drawing objects is mostly kept in conventional memory.
  1801.   However version 5.1 of LASI has a memory manager that stores data in the
  1802.   extended memory area above 1MB. When you run out of conventional memory,
  1803.   LASI will start moving blocks of data back and forth between conventional
  1804.   memory and extended memory, using XMS services. This is all transparent
  1805.   to the user, except for a slight delay on slower computers.
  1806.  
  1807.   The LASI main program is loaded at some low address determined by the DOS
  1808.   system. The main program will use about 200KB, and the remaining memory
  1809.   space can be used for object record data.
  1810.   ≡≡14
  1811.   Conventional Memory Map:                  1KB=1024 Bytes, 1MB=1024KB
  1812.  
  1813.                                       (temporary data)      small prgms.
  1814.           DOS+TSRs       LASI      DOS memory blocks (DMB)  or more data
  1815.         ├───────────┼────────────┼────────────────────────┼──────┤
  1816.       0KB <Minimum>    <≈200KB >         <≈300KB>       <64KB> 640KB
  1817.  
  1818.  
  1819.   Extended Memory Map:
  1820.                                        (permanent data)
  1821.          possible RAM drive area   extended memory blocks (EMB)
  1822.         ├────────────────────────┼──────────────────────────────>
  1823.       1024KB                     ?
  1824.  
  1825.  
  1826.   When LASI works in DOS memory mode only (if "mmode=dos" is set or no XMS
  1827.   is detected) object data is stored in the memory above the main program
  1828.   in the DMB shown above. Since this area is finite, eventually you will
  1829.   run out of memory if your drawing contains too many objects.
  1830.  
  1831.   If LASI uses extended memory, unlimited memory is effectively available,
  1832.   but at the cost of more complexity. Extended memory is not directly
  1833.   accessible by DOS operating systems because they run in what is called
  1834.   "real mode", which was established early in PC history and can only
  1835.   address memory up to 1MB.
  1836.  
  1837.   In the last few years, eXtended Memory Specification (XMS) services were
  1838.   added to most operating systems: DOS, Windows, etc. as a means of easily
  1839.   expanding the data memory available to DOS programs. XMS provides
  1840.   temporary access to memory above 1MB and allows data to be swapped
  1841.   between extended memory and conventional memory, where a DOS program can
  1842.   work with the data.
  1843.  
  1844.   To manage object memory LASI has to do the following (simplified):
  1845.  
  1846.     When LASI loads a cell file or when objects are added to a drawing, it
  1847.     has to make sure that it has a place to put the data both in DOS and
  1848.     XMS memory. LASI works in blocks of data, so if memory is needed, a
  1849.     temporary DMB and a permanent EMB will be allocated. LASI keeps lists
  1850.     of DMBs and EMBs, so that the contents and location of these memory
  1851.     blocks will always be know.
  1852.  
  1853.     When DMBs fill available DOS memory, something has to give, and LASI
  1854.     has to begin a process of swapping DMBs to EMBs and freeing the DMBs
  1855.     one at a time. New data is placed the newly freed DMB and the old data
  1856.     block is marked that it is no longer in DOS memory.
  1857.  
  1858.     If previous data is needed, a DMB must be freed so that the data in the
  1859.     corresponding EMB can be swapped back, and any data that was present in
  1860.     the freed DMB must be moved to its own EMB.
  1861.  
  1862.     When a cell is exited or if certain commands (DOS or HCPY for example)
  1863.     are used, all data must be written to the disk and all DMBs and EMBs
  1864.     must be cleared. This is important because first current data is
  1865.     protected, and second, DOS can not access extended memory, and patches
  1866.     of unavailable extended memory can be caused by an improper exit from
  1867.     LASI or a "child" program. This can only be cured by a reboot.
  1868.  
  1869.   Doing all this is obviously not a trivial job. LASI 5.1 has a set of
  1870.   functions that work directly to standard XMS services and form what is
  1871.   called a "virtual object manager" (VOM). The manager works transparently,
  1872.   and may only be noticed on some slower computers when the additional
  1873.   layer of programming abstraction makes things run a little more slowly.
  1874.  
  1875.   The VOM controls the memory used for box, path, vertex and cell object
  1876.   data records, which are all different.
  1877.  
  1878.   The simplifying matters, memory is always allocated in 8KB (8192 byte)
  1879.   blocks, without regard for the type of object. Different cells can have
  1880.   different types of objects, and the VOM will accommodate.
  1881.  
  1882.   In each block, a certain number of object records can be fitted. The
  1883.   number is not necessarily and exact fraction of block length, but is the
  1884.   largest number of records that will completely fit in the block. Each
  1885.   type of object has a maximum number of blocks per cell. These numbers are
  1886.   as follows:
  1887.   ≡≡6
  1888.               Bytes/Record  #Rec/Block  #Blocks   Max.#Rec/Cell
  1889.     Boxes:       18           455         72        32760
  1890.     Paths:        8          1023         16        16368
  1891.     Vertices:    12           682         96        65742
  1892.     Cells:       10           819         20        16380 (per rank)
  1893.  
  1894.  
  1895.   When XMS services are used to allocate blocks of extended memory, numbers
  1896.   called handles are assigned by the XMS to identify extended memory
  1897.   blocks. These are limited by the system to a fairly small number (32 by
  1898.   default).
  1899.  
  1900.   This is much less than the number of 8KB blocks that LASI uses. Each
  1901.   handle really points to a set of blocks, and each block is further
  1902.   identified by an offset within the larger block.
  1903.  
  1904.   The effect of this is to cause the VOM to take larger pieces of extended
  1905.   memory than it might actually need. If you have over 4MB of memory, you
  1906.   probably will not have any problem. The amount of memory that will be
  1907.   needed is as follows:
  1908.   ≡≡6
  1909.               #Rec/Block  #Blocks  #Blocks/Handle  #Handles  Bytes
  1910.     Boxes:       455        72         36             2     589,824
  1911.     Paths:      1023        16         16             1     131,072
  1912.     Vertex:      682        96         32             3     786,532
  1913.     Cells*Ranks: 819      20*15       20*15          15     163,840*15
  1914.  
  1915.   Note that each cell rank assigns a new set of blocks to a maximum of 15.
  1916.   Normally you will not make a drawing 15 ranks deep. Note also that boxes
  1917.   and vertices are broken into 2 and 3 handles respectively, so that only
  1918.   the necessary blocks or handles will be allocated.
  1919.  
  1920.   When LASI starts, it checks if it has a minimum amount of XMS memory
  1921.   available. This is about 1.6MB. This insures that all files that will be
  1922.   written back to the hard disk can be safely loaded. This does NOT insure
  1923.   that all drawings can be completely displayed (note the requirements
  1924.   above). You may see nested cells being drawn as outlines because they
  1925.   could not be full loaded. This is not fatal, you just need more memory
  1926.   available.
  1927.  
  1928.   When LASI is in System Mode, the maximum amount of available memory will
  1929.   be displayed in the Environment area. When in Cell Mode, the INFO command
  1930.   shows how much memory is still free. Unless you make cells with thousands
  1931.   of objects, you will probably not use too much memory, and you won't have
  1932.   to worry about any memory limits. If you add up the numbers above, you
  1933.   will find that most LASI drawings will just about fit in a PC with 4MB of
  1934.   total memory, and will fit for sure in 8MB.
  1935.  
  1936.   If you have very big cells, it is possible that cells that "fit" on one
  1937.   computer will not "fit" on another. It is therefore important that you
  1938.   have as much TOTAL memory as possible in your computer. When you start a
  1939.   program that manages objects, either LASI or one of the utility programs,
  1940.   the available memory will be displayed (Press "Mem"). Use this number for
  1941.   comparison.
  1942.  
  1943.   LASI 5.1 frees all its data area on certain commands. You will always be
  1944.   able to use DOS and HCPY commands because they free all data memory. The
  1945.   "resident" part of LASI will however remain which will occupy about
  1946.   200KB. If you run out of memory, you might want to try to maximize your
  1947.   conventional memory. The newer DOS's you can load much of your resident
  1948.   software into high memory. Read the General Information/MS-DOS 5 or 6
  1949.   topic.
  1950.  
  1951.   You can also gain quite a bit of DOS memory by using one of the better
  1952.   memory managers such as QEMM-386 or 386MAX, which move TSRs and drivers
  1953.   into high memory more effectively than DOS 5. MS-DOS 6 has MEMMAKER which
  1954.   does the same as QEMM-386 and 386MAX and will probably do quite nicely.
  1955.  
  1956.  Making Measurements
  1957.  
  1958.   The position of the cursor in the drawing window is continuously read out
  1959.   at the bottom of the screen. The coordinates are either in working grid
  1960.   units or in the smallest possible grid unit, the unit grid. You may
  1961.   switch between these by pressing the A or ALT keys.
  1962.  
  1963.   There is no ruler, but distances can be measured graphically. The Z key
  1964.   zeroes the measurement reference to the current cursor grid point. The
  1965.   current cursor grid point may be either in the working grid or the unit
  1966.   grid, depending on the resident command or if the cursor grid has been
  1967.   switched by the A or ALT keys.
  1968.  
  1969.   If the SPACE bar is then pressed, a measurement from the zero point will
  1970.   be displayed at the bottom of the screen. The second point will be
  1971.   gridded to the present cursor grid.
  1972.  
  1973.   If the D key is pressed or the button is clicked, the distance marker
  1974.   will be toggled on and off. An intensified "D" will be displayed in the
  1975.   toggle button area of the screen to indicate that the marker is ON.
  1976.  
  1977.   Note: You can hold down the SPACE bar and move the mouse. This will give
  1978.     a continuous readout of the distance from the reference.
  1979.  
  1980.  Mouse Cursor
  1981.  
  1982.   LASI is designed to be very mouse intensive. Positioning the cursor and
  1983.   clicking the mouse buttons chooses the commands and inputs most all the
  1984.   graphical information. The exceptions being when a literal or numerical
  1985.   input is required, or when a specially assigned key is used.
  1986.  
  1987.   LASI doesn't use any cursor "clicking and dragging". Each cursor input is
  1988.   a single up and down mouse button click. The reason for this is that LASI
  1989.   always allows you to make drawing window changes within other commands,
  1990.   and therefore must be able to nest mouse button clicks.
  1991.  
  1992.   The mouse cursor is usually a small cross that may have other figures
  1993.   added to it as follows:
  1994.  
  1995.   ■ When a commands expects a distance displacement, a dotted line or
  1996.     vector will appear.
  1997.  
  1998.   ■ When a command expects to select or "get" something, a dotted
  1999.     rectangular area will appear. A point is defined to INTERSECT the area
  2000.     if it is ON or WITHIN the boundaries.
  2001.  
  2002.   ■ When a BOX is to be added, the dotted rectangle previews the box.
  2003.  
  2004.   ■ When a path is to be added, one or two dotted lines preview or "rubber
  2005.     band" the new path.
  2006.  
  2007.   The cursor can be toggled between the small cross and crosshair lines by
  2008.   pressing the TAB key. The cursor automatically turns back to the small
  2009.   cross if not on the drawing window.
  2010.  
  2011.   When a cursor input is expected, the point needed will be shown at the
  2012.   bottom of the screen after the command name. Most commands take one or
  2013.   two points.
  2014.  
  2015.   The cursor moves in discrete steps. When a command is chosen, the cursor
  2016.   is set to move either in the unit grid or in one of a number of preset
  2017.   working grids. The working grids are entered using the SET command, and
  2018.   are changed with the WGRD command. The cursor's grid type may change from
  2019.   command to command or during a command, but it may always be toggled from
  2020.   one type of grid to the other by clicking the "A" toggle button, or by
  2021.   pressing either the A or the ALT key on the keyboard.
  2022.  
  2023.   Certain cell commands use a DOUBLE CLICKING of the LEFT mouse button to
  2024.   change the way that the command acts on cells. If you click twice
  2025.   rapidly, the cells that OVERLAP the mouse cursor points will be affected.
  2026.   If you wait a bit between clicks, only the cells that have their areas
  2027.   fully ENCLOSED by the mouse cursor window will be affected.
  2028.  
  2029.   The time between mouse clicks is set as the number of "ticks" using the
  2030.   SET command in Cell Mode. Each tick is about 1/20 sec. Adjust this to
  2031.   your own comfort. The number of ticks is saved and returned when you
  2032.   restart LASI.
  2033.  
  2034.   Hint: If you want to turn off double clicking entirely, set the number of
  2035.      ticks to 0. If you always want double clicking actions, set the number
  2036.      of ticks to a large number, such as 32000.
  2037.  
  2038.   In Cell Mode, as you move the cursor, position reports are made at the
  2039.   bottom of the display. If these are printed too often on a computer with
  2040.   slow video, the cursor will be "bouncy" and hard to control. You can use
  2041.   the SET command to set the number of ticks between position reports. The
  2042.   number is an integer and will usually be set 0 to 10. Start with 0 and
  2043.   increase this number for a better cursor feel.
  2044.  
  2045.  Octogonal Mode
  2046.  
  2047.   The O key or the "O" button toggles octagonal cursor mode on certain
  2048.   commands.
  2049.  
  2050.   ■ The "O" intensifies to indicate that octagonal mode is on.
  2051.  
  2052.   ■ When octagonal mode is on, the cursor movement vector is snapped to the
  2053.     nearest 45 degrees. The commands ADD (for paths), MOV, WMOV, QMOV, CMOV
  2054.     and CPY are affected.
  2055.  
  2056.   Octogonal mode is used to restrict drawing so that only 45 and 90 degree
  2057.   angles are allowed, which preserves drawing neatness and conforms to
  2058.   certain physical artwork generation requirements.
  2059.  
  2060.  Operating Modes
  2061.   ≡≡13
  2062.   LASI runs from DOS in two operating modes, System Mode and Cell Mode:
  2063.  
  2064.  
  2065.                                            LIST   ┌<----------┐
  2066.            ┌─────────┐ "lasi"  ┌─────────┐ CELL ┌─────────┐   |
  2067.            │         │-------->│ System  │----->│  Cell   │   |
  2068.            │   DOS   │         │         │      │         │-->┘
  2069.            │         │<--------│  Mode   │<-----│  Mode   │
  2070.            └─────────┘  QUIT   └─────────┘  SYS └─────────┘
  2071.                 |                                    |
  2072.                 └---------------------------------->-┘
  2073.                           "lasi cellname"
  2074.  
  2075.  
  2076.   System Mode is a housekeeping mode which has commands for overall
  2077.   manipulation of cells and the control of certain drawing parameters.
  2078.  
  2079.   Cell Mode is the mode where actual drawing is done. When Cell Mode is
  2080.   entered a cell drawing is opened for creation or modification. Cell Mode
  2081.   has the following properties:
  2082.  
  2083.   ■ Cell Mode has up to 15 ranks.
  2084.  
  2085.   ■ The rank of Cell Mode is obtained from the cell being drawn.
  2086.  
  2087.   ■ Each Cell Mode rank keeps separate parameters, such as window size and
  2088.     position, in order to simplify moving between different ranks of cells
  2089.     while working on a drawing.
  2090.  
  2091.   ■ All Cell Modes are identical except for the ranking.
  2092.  
  2093.   ■ Both modes have a menu of commands on the side of the screen. The
  2094.     commands are explained under their own help topics.
  2095.  
  2096.   ■ When LASI is started it goes to System Mode.
  2097.  
  2098.   ■ Using the SYS command that appears in the Cell Mode menu is the normal
  2099.     way to reenter System Mode from Cell Mode.
  2100.  
  2101.   ■ Using the CELL and LIST commands which appear in both mode menus is
  2102.     normal way to enter Cell Mode and open another cell.
  2103.  
  2104.   Cell Mode may be entered directly from DOS (as shown above) by adding the
  2105.   name of a cell to the command line when starting LASI.
  2106.  
  2107.   Example: "lasi flipflop" when typed in DOS runs LASI and
  2108.             enters into the cell named "FLIPFLOP".
  2109.  
  2110.   Read the CELL, LIST and SYS commands.
  2111.  
  2112.  PKE Coordinate Input
  2113.  
  2114.   Parallel Keyboard Entry can be done any time a command is requesting a
  2115.   point normally inputted by the mouse. To start a PKE entry press either
  2116.   the X or Y keys. The coordinate pair will appear in the lower left corner
  2117.   of the screen.
  2118.  
  2119.   Pressing the X or Y key clears that coordinate to zero and a new value
  2120.   may then be typed into that coordinate. Coordinate values may contain a
  2121.   decimal point, a minus sign or "E" if the number is in exponential form.
  2122.   Corrections may be made by pressing X or Y again, clearing the value to
  2123.   zero, or by using the BACKSPACE key.
  2124.  
  2125.   To enter the coordinate pair press ENTER.
  2126.  
  2127.   To abort a pending PKE entry, click on any menu button using the mouse,
  2128.   except any of the window commands, or press ESC.
  2129.  
  2130.   Note: Some commands that require an incremental input and not an absolute
  2131.     position (MOV for example) accept only a single PKE distance entry
  2132.     instead of two mouse cursor inputs.
  2133.  
  2134.  Pooling Cells
  2135.  
  2136.   Since version 4.1 of LASI, rank 1 cells may be kept in a common "pool".
  2137.   This pool is a drawing directory that contains cells that might be used
  2138.   in many different layouts, such as logic elements or standard
  2139.   transistors. The basic cell BP5 file is taken either from the default
  2140.   drawing directory or the pool drawing directory.
  2141.   ≡≡14
  2142.   Cell Source Diagram:
  2143.  
  2144.                    ┌───────────┐ Attached Cell
  2145.               BP5  │   POOL    │----->-┐
  2146.               File └───────────┘       | Attach
  2147.                          |             | Command
  2148.                          |             |    ┌───────────┐
  2149.                          | IMPORT      ├--->│  Drawing  │
  2150.                          | Command     |    └───────────┘
  2151.                          V             |
  2152.                    ┌───────────┐       |
  2153.               BP5  │ Draw Dir. │----->-┘
  2154.               File └───────────┘ Normal Cell
  2155.  
  2156.  
  2157.   The pool directory is set with the "pool=" parameter in the FORM.DBD
  2158.   file. The pool variable is the name of the directory where pooled cells
  2159.   are stored.
  2160.  
  2161.   Example:  "pool=c:\ourpool" would be a line in FORM.DBD
  2162.  
  2163.   If the pool directory is on a different logical drive than the drawing
  2164.   directory, precede the directory name with the drive letter. Omit "\"
  2165.   from the end of the pool directory name.
  2166.  
  2167.   The cells are "attached" to a drawing using the ATTACH command in System
  2168.   Mode.
  2169.  
  2170.   The attached cells may be included in a drawing by first making them the
  2171.   object with the OBJ command and then adding them with the ADD command.
  2172.   Once added the attached cells may be manipulated like any other normal
  2173.   cell.
  2174.  
  2175.   Important: Any pool cells that were made using version 4 of LASI need to
  2176.     have their internal files in the pool directory replaced with version
  2177.     5.1 internal cell files. The easy way to do this is to make the POOL
  2178.     directory the current drawing directory, and run 4TO5.EXE. The
  2179.     procedure is the same as described in Basic Information/Converting
  2180.     Versions.
  2181.  
  2182.   Read the General Information/Attached Cells topic and the ATTACH and
  2183.   IMPORT command topics.
  2184.  
  2185.  Starting a Drawing
  2186.  
  2187.   This is an elaboration on Quick Start. If you have run LASI you already
  2188.   know how to get LASI up and working, here are more details that you would
  2189.   normally go through when really using LASI seriously.
  2190.  
  2191.  
  2192.   To start a drawing:
  2193.  
  2194.   1. Create a "drawing directory" as an independent directory.
  2195.  
  2196.     The drawing directory should be named for the drawing to be made. Each
  2197.     different drawing is kept on the hard disk by isolating it in its own
  2198.     directory. The drawing directory will contain certain .DBD files
  2199.     (drawing basic data) and the "internal" files (.BP5 and .CL5) for the
  2200.     cells that you create.
  2201.  
  2202.     NEVER make drawings in the \LASI5 directory.
  2203.  
  2204.   2. Copy a FORM.DBD file to the drawing directory.
  2205.  
  2206.     The FORM.DBD file customizes LASI to the specific hardware and software
  2207.     you are using. The FORM.DBD is local to a drawing directory so it can
  2208.     be different for each drawing. You may copy a form file from another
  2209.     drawing or use the generic one that comes with the system files. Read
  2210.     the General Information/Form File topic for a description of the
  2211.     different parameters.
  2212.  
  2213.   3. Edit the FORM.DBD file if necessary.
  2214.  
  2215.     The FORM.DBD file is important since it configures your drawing to your
  2216.     hardware. You can usually use the default values in the original
  2217.     distribution FORM.DBD at first, but you eventually will need to change
  2218.     FORM.DBD using a editor such as EDLIN.COM or EDIT from MS-DOS 5 or 6.
  2219.     Once you establish a "normal" FORM.DBD file, you can just copy it from
  2220.     drawing to drawing.
  2221.  
  2222.   4. Make the drawing directory your default directory and run LASI.EXE.
  2223.  
  2224.     The program will start in System Mode. When you first begin a drawing
  2225.     you should check the scale using the SCALE command and decide if the
  2226.     parameters are what you want. The scale really only relates the
  2227.     physical units in which you do a drawing to the basic units in which
  2228.     the drawing is actually stored. If you do not use the appropriate
  2229.     scale, you may create cells that have too little resolution, or too
  2230.     much resolution, and the overall size of your drawing will be too
  2231.     small.
  2232.  
  2233.   5. If you are using the cell pooling feature of LASI 5.1 attach any
  2234.      pooled cells that you think you might need.
  2235.  
  2236.     You can always attach cells, but bringing in basic cells is a good
  2237.     place to start.
  2238.  
  2239.   6. Use the CELL command to go to Cell Mode and create new cells.
  2240.  
  2241.     Start by drawing the lowest rank cells that will be used as building
  2242.     blocks for higher rank more complex cells, and eventually the overall
  2243.     layout. Generally, repetitive structures should be made as individual
  2244.     cells and used to build other cells. However, too few boxes or paths
  2245.     can be a waste of a cell. With experience you will develop a feel of
  2246.     how to partition your cell structuring.
  2247.  
  2248.   Hint: If you have a similar drawing in another directory and you have
  2249.     already defined the hardware and drawing parameters, you can copy the
  2250.     CONSTS5.DBD file into the new directory. This will save you the trouble
  2251.     of redefining things over again. The CELLS5.DBD file is NEVER copied
  2252.     from drawing to drawing since it serves as a cell reference list that
  2253.     is different with each drawing. For the same reason, you MAY NOT copy
  2254.     BP5 and CL5 files between drawings.
  2255.  
  2256.  Toggle Buttons
  2257.  
  2258.   Toggle buttons control special drawing functions. The letters intensify
  2259.   to indicate that a function is toggled ON. Clicking a button with the
  2260.   LEFT (or RIGHT) mouse button is the same as pressing a key.
  2261.  
  2262.   "A" indicates that the alternate grid (working or unit) is in effect.
  2263.   This clears after each command is completed.
  2264.  
  2265.   "C" indicates that dashed path center lines will be drawn.
  2266.  
  2267.   "D" indicates that a small diamond shaped marker will be drawn at the end
  2268.   point when you measure distances.
  2269.  
  2270.   "I" indicates that a cell's image will be drawn in addition to the cell.
  2271.  
  2272.   "N" indicates that if a cell is being drawn as an outline, the name of
  2273.   the cell will be drawn in the lower left corner of the outline.
  2274.  
  2275.   "O" indicates that octagonal cursor mode is ON.
  2276.  
  2277.   "R" indicates that a 0,0 reference mark will be drawn.
  2278.  
  2279.   "T" indicates that the small diamond shaped reference mark for text will
  2280.   be drawn.
  2281.  
  2282.   Read General Information/Key Assignment for more key functions.
  2283.  
  2284.  Undoing Mistakes
  2285.  
  2286.   Whenever you enter into Cell Mode or use the SORT, DEL or SMSH command, a
  2287.   backup copy of the drawing is stored on the hard disk. To retrieve the
  2288.   stored backup, you use the UNDO command.
  2289.  
  2290.   If you don't sort, and you leave LASI unattended, after a certain amount
  2291.   of time, LASI will automatically sort and backup cell drawing data on its
  2292.   own. This time is set using the Cell Mode SET command.
  2293.  
  2294.   Read the SORT, DEL, SMSH and UNDO command topics.
  2295.  
  2296.  Using MS-DOS 5 or 6
  2297.  
  2298.   Using DOSSHELL found in MS-DOS 5 or 6 (if you like it) is a way to setup
  2299.   drawings when using LASI. You can make each drawing a Program Item either
  2300.   by itself or as a part of a Program Group. Set the "Commands" property to
  2301.   "lasi.exe" and the "Startup Directory" to the drawing directory. You may
  2302.   also use other "shells" like XTREE to set up drawings. If you are
  2303.   normally running Windows, you can setup LASI under Windows. Read the
  2304.   Using MS-Windows topic.
  2305.  
  2306.   The ability to MS-DOS 5 or 6 to load drivers into the upper memory area
  2307.   (640KB to 1024KB) on a 80386, 80486  or Pentium computer should be used
  2308.   to save conventional memory. This will give you more memory for a larger
  2309.   number of LASI objects and the memory manager will not have to swap so
  2310.   often.
  2311.  
  2312.   MS-DOS 6 has a program MEMMAKER.EXE that finds places to move TSR
  2313.   programs out of conventional memory. This should be used if at all
  2314.   possible because it will automatically make more memory available.
  2315.  
  2316.  Using a RAM Drive
  2317.  
  2318.   The RAM drive provision in LASI is becoming somewhat obsolete because new
  2319.   hard disks are quite fast and usually have internal caches that retain
  2320.   frequently used files - just as LASI requires. The newer versions of the
  2321.   disk cache utility SMARTDRV (Microsoft) also has become more efficient.
  2322.  
  2323.   However, if you have a older slower hard disk drive, drawing speed can be
  2324.   greatly improved if a RAM drive is used. Cell files that normally would
  2325.   be kept on a hard disk can be placed on a RAM drive by using the MS-DOS
  2326.   RAMDRIVE.SYS driver, or similar software. LASI will automatically swap
  2327.   cell files to a RAM drive when it draws, and then restore them to the
  2328.   hard disk when it is finished.
  2329.  
  2330.   To use a RAM drive you must first create the RAM drive during DOS bootup
  2331.   time by adding the driver to your CONFIG.SYS file. The RAM drive should
  2332.   be located in extended (or expanded) memory.
  2333.  
  2334.   To have LASI recognize a RAM drive, the "ramdrive=" parameter of the
  2335.   FORM.DBD file must be the letter name of the RAM drive. For example, if
  2336.   the RAM drive installs as disk E:, then "ramdrive=E:" would be the
  2337.   parameter.
  2338.  
  2339.   If you have no RAM drive installed, set the "ramdrive=" parameter to the
  2340.   logical drive letter name of your drawing directory disk, or simply leave
  2341.   the "ramdrive=" parameter blank, since the drawing directory is on the
  2342.   default disk drive.
  2343.  
  2344.   The RAM drive must be large enough to hold all the cell files in a
  2345.   drawing. It should however be ONLY large enough to hold the expected cell
  2346.   files. If you use all your extended memory for a RAM drive, you won't
  2347.   have enough extended memory for object data swapping. When you start LASI
  2348.   the Environment shows how much extended memory you really have.
  2349.  
  2350.   Computers with a several megabytes of additional memory above 640KB are
  2351.   needed for most real work. When creating the RAM drive the driver's
  2352.   parameters must be set to hold both the amount of memory and the number
  2353.   of files expected.
  2354.  
  2355.   When LASI is run, it presently does not erase the RAM drive files. Old
  2356.   files may therefore clutter your RAM disk. Since it is not too hard to
  2357.   erase the wrong disk, possibly your hard disk, it is recommended that you
  2358.   make a batch file (.BAT) to erase the RAM drive when beginning a new
  2359.   drawing, load a mouse driver, if needed, and then run LASI. Of course,
  2360.   whenever you turn off the computer power, the RAM drive is erased anyway.
  2361.  
  2362.   If you do run out of RAM drive space a warning will appear on the screen.
  2363.   LASI will try to preserve your drawing by switching to the hard disk if
  2364.   it finds that the RAM drive is full. Drawing will slow down noticeably in
  2365.   that case. In particular, if the basic objects (boxes, paths and text)
  2366.   are no longer swappable to the RAM drive, you will see the hard disk
  2367.   being accessed if you are drawing a cell that contains other cells. If
  2368.   this happens, you should exit LASI, increase your RAM drive space, if
  2369.   possible, and rerun LASI.
  2370.  
  2371.   Important: If you do not use a RAM drive, run a disk organizing program
  2372.     such as OPTIMIZER (COMPRESS) from PC Tools or SPEEDISK from Norton
  2373.     Utilities on your hard disk often. If cell files become highly
  2374.     fragmented, the drawing time for LASI can become incredibly long.
  2375.     MS-DOS 6 now includes DEFRAG.EXE which is a cut-down version of
  2376.     SPEEDISK. Running any of these programs frequently can greatly improve
  2377.     drawing speed.
  2378.  
  2379.  Using SMARTDRV
  2380.  
  2381.   Installing a software disk drive caching driver can speed up the
  2382.   redrawing of cells the same as using a RAM drive. The disadvantages are
  2383.   that you will occasionally go to the hard disk if you lose a file from
  2384.   the RAM cache, and you will use more RAM in the DOS program area below
  2385.   640KB unless your cache uses upper memory for its manager. The advantage
  2386.   is that you will not have to worry about running out of RAM drive space.
  2387.  
  2388.   Any GOOD drive cache driver, such as SMARTDRV from Microsoft, should
  2389.   work. Installing the drive cache in extended memory just as with a RAM
  2390.   drive is preferred, and the cache size should be as large as is needed to
  2391.   get a good hit ratio. If you run Windows, you probably have SMARTDRV
  2392.   already installed, in fact, SMARTDRV.EXE 4.0 that comes with Windows 3.1
  2393.   or SMARTDRV 5.0 that comes with DOS 6.2 are quite good.
  2394.  
  2395.   To use a cache, be sure that the "ramdrive=" parameter in FORM.DBD is the
  2396.   same drive letter name as your drawing directory or has been left blank.
  2397.  
  2398.  Using Windows(95)
  2399.  
  2400.   LASI and its utility programs will run under Microsoft's Windows 3.1 and
  2401.   Windows 95, as DOS Applications. LASI should normally be run under
  2402.   Windows Enhanced Mode. To install LASI in Windows 3.1:
  2403.  
  2404.   1. Use the Windows PIF editor and create a PIF file for each program you
  2405.      want to run on a drawing. You should enter the program name as the
  2406.      "Description", and a "Command Line" such as drive:\LASI5\LASI.EXE,
  2407.      where "drive" is the logical drive where LASI is installed. You should
  2408.      leave the "Working Directory" blank. You should set the XMS min. and
  2409.      max. memory limits to something that depends on how much RAM you have,
  2410.      but in general should provide several megabytes for LASI. Setting Min.
  2411.      to 0 and Max. to -1 gives all available memory.
  2412.  
  2413.   2. Use the Windows Program Manager "File Properties" to set the icon for
  2414.      each program. Icons are found in subdirectory \LASI5\ICONS. The
  2415.      generic icons for converter programs are ANY2TLC.ICO and TLC2ANY.ICO.
  2416.      The generic icon for all plotter programs is ANYPLOT.ICO. The LASI.ICO
  2417.      picture is a small lateral MOS transistor.
  2418.  
  2419.   3. For each item in a particular group, under File Properties" set the
  2420.      "Working Directory" for the icon to the particular drawing directory.
  2421.  
  2422.  
  2423.   LASI will run under Windows by just using "Run" in the Program Manager or
  2424.   by creating an automatic PIF file using "Properties". You will usually
  2425.   get only 1024KB of memory if you do this. LASI will default out of XMS if
  2426.   this happens.
  2427.  
  2428.   LASI must always be run as a Full Screen program. LASI WILL NOT run
  2429.   correctly in a "DOS window" that can be opened with the MSDOS icon in the
  2430.   Windows Main Program Group. The mouse works differently and the graphics
  2431.   fail. Press CTRL-END to exit.
  2432.  
  2433.   It has been noticed that when run under Windows, LASI may report more or
  2434.   less RAM memory than you really have. LASI uses a call to XMS services to
  2435.   determine memory. When in Windows Enhanced Mode, these services are
  2436.   controlled by the virtual memory manager in WIN386. If the maximum XMS
  2437.   memory has not been set when the PIF file was created, Windows may report
  2438.   this strangely. The memory reported may actually includes some available
  2439.   disk swapping space that Windows will use, or may be just nonsense.
  2440.  
  2441. Command Information
  2442.  
  2443.  
  2444.  Add
  2445.  
  2446.   ADD adds an object to the drawing.
  2447.  
  2448.   ■ The object to be added is set by the OBJ command and is indicated at
  2449.     the bottom of the screen.
  2450.  
  2451.   ■ A box requires two coordinate points at diagonally opposite corners.
  2452.  
  2453.   ■ A path (poly) takes a vertex from each coordinate input.
  2454.  
  2455.   ■ A path adds a new vertex after the first active vertex found in the
  2456.     order in which the path is drawn.
  2457.  
  2458.   ■ A cell is added with its origin at a single coordinate point.
  2459.  
  2460.   ■ Use the TEXT command to add text to a drawing.
  2461.  
  2462.   The cursor will indicate the adding action that will take place. For
  2463.   boxes, the box outline will be shown in dots. For paths, segments will be
  2464.   previewed as dotted lines (rubber bands). Cells add as a single point.
  2465.  
  2466.  aGet
  2467.  
  2468.   AGET (all get) is a combination of FGET and CGET.
  2469.  
  2470.   ■ This command acts on cells, boxes, paths and text in the same way as
  2471.     those commands.
  2472.  
  2473.   AGET is useful if you are MOVing, CPYing or FLPing large sections of a
  2474.   drawing because you can see just which objects are active before the
  2475.   operation, and unlike WGET it will not distort paths.
  2476.  
  2477.  aPut
  2478.  
  2479.   APUT (all put) makes all boxes, paths, text and cells inactive.
  2480.  
  2481.   ■ This command is for making sure that ALL objects are inactive.
  2482.  
  2483.   APUT is a handy command to make objects inactive with a single mouse
  2484.   button click.
  2485.  
  2486.  Arc
  2487.  
  2488.   ARC calls the arc generator.
  2489.  
  2490.   Rules for making arcs:
  2491.  
  2492.   ■ An arc is generated starting at the first active vertex found on a
  2493.     path, and is swung around an arc center point to an end point.
  2494.  
  2495.   ■ The radius of the arc is a linear function of the angle and the
  2496.     difference in radius between the starting and end points.
  2497.  
  2498.   ■ The center and end points are single coordinate input points.
  2499.  
  2500.   ■ The number of segments and the direction of generation (cw or ccw) must
  2501.     be entered when requested.
  2502.  
  2503.   ■ To start an arc from nothing you must first add a single active vertex
  2504.     and then call the generator. The arc takes its width and layer from the
  2505.     original path object or "arc seed".
  2506.  
  2507.   ■ Arc internal points are added on the nearest unit grid.
  2508.  
  2509.   ■ Arc center and end points are added on the nearest working grid.
  2510.  
  2511.   When you start an arc the cursor displays one or two dotted lines (rubber
  2512.   bands) which show how an arc will be added.
  2513.  
  2514.   If you are adding an arc at the last vertex of a polygon and the center
  2515.   point is being requested, the dotted line will show the radius to the
  2516.   center from the starting point. When the end point is requested, the
  2517.   dotted line will show the radius to the arc center of the end point.
  2518.  
  2519.   If the active vertex is not the last vertex, an arc will be inserted into
  2520.   the polygon between two vertices, and a cursor with two dotted lines will
  2521.   be drawn that gives information on how the arc will be inserted.
  2522.  
  2523.   When the center point is being requested, one dotted line will show the
  2524.   radius to the center point from the starting point. A second dotted line
  2525.   will be drawn from the cursor to the second vertex. This lets you know
  2526.   the direction of the polygon and therefore between which poly segments
  2527.   the arc will be inserted. When the arc end point is requested, the dotted
  2528.   lines will show the radius to the arc center of the arc end point and the
  2529.   distance of the arc end point to the second vertex.
  2530.  
  2531.   Hints:
  2532.  
  2533.   1. If you are generating an arc with many vertices, you can speed up the
  2534.      process by pressing ESC or clicking the RIGHT mouse button, which
  2535.      causes drawing to be bypassed.
  2536.  
  2537.   2. It is easy to generate duplicate vertices when you are adding arcs to
  2538.      polygons. When you are finished with one or more arcs, click the UDUP
  2539.      command. This will remove any consecutive identical vertices.
  2540.  
  2541.  Arrows
  2542.  
  2543.   Up, down, left and right arrows pan the drawing window.
  2544.  
  2545.   ■ The drawing window is moved by a certain fraction of its width (50%) in
  2546.     the arrow's direction.
  2547.  
  2548.   ■ If you pan with the ALT key down, the window moves only a small
  2549.     fraction of its width (5%).
  2550.  
  2551.   ■ The display is redrawn.
  2552.  
  2553.   The arrow keys on the keyboard perform this same function to be
  2554.   consistent with other CAD systems.
  2555.  
  2556.   Read DRAW.
  2557.  
  2558.  Attach
  2559.  
  2560.   ATTACH installs a cell from a common cell pool in a drawing's cell
  2561.   collection.
  2562.  
  2563.   ■ ATTACH will first search to find if a cell already exists in the
  2564.     drawing. If one is found you will be ask if you want to continue. If a
  2565.     cell is not found, it will be immediately added to the cell collection.
  2566.  
  2567.   ■ ATTACH will turn a normal cell into an attached cell, but the attached
  2568.     cell must exist in the pool directory.
  2569.  
  2570.   ■ Higher rank cells may be attached but you will only get the boxes,
  2571.     paths and text of the cell, and the cell will changed to a rank 1 cell.
  2572.  
  2573.   ■ If the "pool=" parameter in FORM.DBD is missing or blank, the ATTACH
  2574.     command will not work.
  2575.  
  2576.   Read the General Information/Attached Cells topic.
  2577.  
  2578.  Cap
  2579.  
  2580.   CAP calls the capacitance calculator.
  2581.  
  2582.   To measure capacitance:
  2583.  
  2584.   1. You first must enter the capacitance units/physical area unit. This
  2585.      will usually be in pF/um2.
  2586.  
  2587.   2. After you enter the capacitance per unit area, all paths with ANY
  2588.      active vertex will be measured automatically, and the total
  2589.      capacitance will be displayed. To compensate for corners, half the
  2590.      width is subtracted from each segment length.
  2591.  
  2592.   3. After all paths are measured, all boxes with ANY active sides will be
  2593.      measured automatically, and the total capacitance of the paths and
  2594.      boxes will be displayed.
  2595.  
  2596.   4. The command will then go into manual mode. Any polygons or areas in
  2597.      cells that should be included in the capacitance can then be manually
  2598.      measured.
  2599.  
  2600.   5. When in manual mode, at the command prompt "[/]", you must fill the
  2601.      area to be measured with rectangular cursor areas by clicking the LEFT
  2602.      mouse button at diagonally opposite corners of the areas.
  2603.  
  2604.   6. An area's capacitance and the sum of previous capacitances will always
  2605.      be displayed at the bottom of the screen.
  2606.  
  2607.   7. To end measuring, click the mouse on any menu button except a window
  2608.      command, or press ESC.
  2609.  
  2610.   Note: Unfortunately, at the moment, LASI does not directly measure the
  2611.     capacitance of irregular areas (polygons). To measure an irregular area
  2612.     you must click small rectangular areas until the total area is filled
  2613.     with minimum overlaps. A measured area is indicated by a lightly dotted
  2614.     fill.
  2615.  
  2616.   This command may be used as an area parameter calculator. For example,
  2617.   you can calculate the area of an integrated circuit by setting the
  2618.   capacitance per area to 1.
  2619.  
  2620.  cCel
  2621.  
  2622.   CCEL (change cell) changes any active cells into the specified cell.
  2623.  
  2624.   ■ This command will not work in a rank 1 cell.
  2625.  
  2626.   ■ Attempting to change to an unknown cell or a cell too high in rank will
  2627.     abort the command.
  2628.  
  2629.   Cancel CCEL by pressing ENTER only or ESC.
  2630.  
  2631.  Cell
  2632.  
  2633.   CELL exits Cell Mode or System Mode and (re)enters Cell Mode.
  2634.  
  2635.   From System Mode:
  2636.  
  2637.   ■ You will be asked for a cellname.
  2638.  
  2639.   ■ If a new cellname is not in the cell collection, the rank will also be
  2640.     requested and you will create a new cell.
  2641.  
  2642.   From Cell Mode:
  2643.  
  2644.   ■ The first active cell that is found in the drawing becomes the default
  2645.     cellname, and you will automatically exit and reenter Cell Mode with
  2646.     that cell.
  2647.  
  2648.   ■ If no default cellname is found, you will be asked for one.
  2649.  
  2650.   ■ If a new cellname is not in the cell collection, the rank will also be
  2651.     requested and you will create a new cell.
  2652.  
  2653.   In either mode, press ENTER only or ESC to the cellname or rank question
  2654.   and you will go to System Mode.
  2655.  
  2656.   Note: You can also enter Cell Mode in two other ways:
  2657.  
  2658.   ■ You can use the LIST command and click the LEFT mouse button on the
  2659.     name of a cell.
  2660.  
  2661.   ■ You can go directly to a cell from DOS by typing the cellname on the
  2662.     command line after "lasi" when starting the program.
  2663.  
  2664.  CelSort
  2665.  
  2666.   CELSORT sorts the cells in the drawing's cell list (CELLS5.DBD file)
  2667.  
  2668.   ■ The cells are sorted first into groups of increasing rank and then are
  2669.     arranged alphabetically within the rank groups.
  2670.  
  2671.   ■ If you are using the RAM drive for your temporary cell files, these
  2672.     files become invalid and have to be "relearned" by drawing the cell
  2673.     once. This is all automatic.
  2674.  
  2675.   ■ Sorting can take a minute or so on a slow computer ... be patient.
  2676.  
  2677.   Important: DO NOT interrupt the sorting (by rebooting) because the cell
  2678.     pointers may be corrupted and you will have the wrong cells appearing
  2679.     in other cells. This can be fixed by using the CCEL command, but it can
  2680.     take a while.
  2681.  
  2682.  cGet
  2683.  
  2684.   CGET (cell get) makes cells active.
  2685.  
  2686.   ■ A cell can be made active in two ways:
  2687.  
  2688.     If the rectangular cursor window completely encloses the cell's area,
  2689.     the cell will become active.
  2690.  
  2691.     If the LEFT mouse button is double clicked while making the cursor
  2692.     window, a cell will become active if the cells's area overlaps the
  2693.     cursor window. This does not work if the cell is drawn only as an
  2694.     outline.
  2695.  
  2696.   ■ An active cell turns bright white on all layers.
  2697.  
  2698.   ■ An active cell drawn as an outline turns bright white and is filled
  2699.     with dots.
  2700.  
  2701.   ■ There is no dependence on VIEW or OPEN.
  2702.  
  2703.   ■ If a cell is not found in the cursor window, a cellname will be asked.
  2704.  
  2705.   Note: If a cell is in outline, only the first method above will work,
  2706.     unless you press and hold CTRL when using the mouse.
  2707.  
  2708.   CGET only works on the top level of cells and has no effect on boxes,
  2709.   paths or text.
  2710.  
  2711.  Clrs
  2712.  
  2713.   CLRS (colors) enters into the Layer Attribute Display and allows the
  2714.   color of a layer to be set.
  2715.  
  2716.   ■ The number of the layer is shown in the layer's color.
  2717.  
  2718.   To exit, press ESC to the "Color Layer" question.
  2719.  
  2720.  cLyr
  2721.  
  2722.   CLYR (change layer) changes the layer of boxes, paths or text.
  2723.  
  2724.   ■ If the value entered is not 1 through 64, the layer will be reasked.
  2725.  
  2726.   ■ Boxes must have ALL sides active to change layer.
  2727.  
  2728.   ■ Paths must have ANY vertex active to change layer.
  2729.  
  2730.   ■ Text will change layer if active.
  2731.  
  2732.   Read LAYR.
  2733.  
  2734.  cMov
  2735.  
  2736.   CMOV (cell move) moves cells directly.
  2737.  
  2738.   ■ A cell can be moved in two ways:
  2739.  
  2740.     A cell will be moved if the rectangular cursor window completely
  2741.     encloses the cell's area.
  2742.  
  2743.     If the LEFT mouse button is double clicked while making the cursor
  2744.     window, the cell will be moved if the cell's area overlaps the cursor
  2745.     window. This does not work if the cell is drawn only as an outline.
  2746.  
  2747.   ■ The first two cursor points form the cursor window.
  2748.  
  2749.   ■ The next two cursor points determine the distance to be moved.
  2750.  
  2751.   ■ The move part of the command accepts a single PKE distance entry.
  2752.  
  2753.   CMOV only works on the top level of cells and has no effect on boxes,
  2754.   paths or text.
  2755.  
  2756.  Cntr
  2757.  
  2758.   CNTR centers the drawing window.
  2759.  
  2760.   ■ The new center is a single point input from the mouse or a PKE
  2761.     coordinate entry.
  2762.  
  2763.   ■ The display is redrawn.
  2764.  
  2765.   Read DRAW.
  2766.  
  2767.  Copy
  2768.  
  2769.   COPY allows NORMAL cells to be copied or appended to other NORMAL cells.
  2770.  
  2771.   Rules for COPYing:
  2772.  
  2773.   ■ The source cell must be a NORMAL cell (not attached) in the drawing
  2774.     cell collection.
  2775.  
  2776.   ■ If the destination cell has a NEW NAME, a new cell will be created.
  2777.  
  2778.   ■ If the destination cell already exists, the source cell will be
  2779.     APPENDED to the existing cell.
  2780.  
  2781.   ■ If either the source or destination cells are attached cells, the
  2782.     command will abort.
  2783.  
  2784.   Inter-rank copying is permitted. If the source cell contains cells that
  2785.   have rank equal to or greater than the destination cell, those cells will
  2786.   not be copied. Boxes, paths and text are always copied.
  2787.  
  2788.   Appended objects appear as active objects in the destination cell. This
  2789.   allows you to move the appended parts if they overlay any previous
  2790.   objects.
  2791.  
  2792.   If the source or destination cells are incorrect, or if copying will
  2793.   overflow the maximum number of any objects, the copy operation will be
  2794.   cancelled and a message will be shown.
  2795.  
  2796.   Since COPY may be used to append to existing cells, it may be used as a
  2797.   means to copy parts of one cell into another. This is done by first using
  2798.   the MAKE command to create a temporary cell. Read the MAKE command topic.
  2799.  
  2800.   Also read the IMPORT command topic.
  2801.  
  2802.  cPut
  2803.  
  2804.   CPUT (cell put) makes cells inactive.
  2805.  
  2806.   ■ A cell can be made inactive in two ways:
  2807.  
  2808.     If the rectangular cursor window completely encloses the cell's area,
  2809.     the cell will become active.
  2810.  
  2811.     If the LEFT mouse button is double clicked while making the cursor
  2812.     window, a cell will become active if the cells's area overlaps the
  2813.     cursor window. This does not work if the cell is drawn only as an
  2814.     outline.
  2815.  
  2816.   ■ This the inverse of CGET, and just works inversely.
  2817.  
  2818.   ■ If a cell is not found in the cursor window, a cellname will be asked.
  2819.  
  2820.   Note: If a cell is in outline, only the first method above will work,
  2821.     unless you press and hold CTRL when using the mouse.
  2822.  
  2823.   Read APUT.
  2824.  
  2825.  Cpy
  2826.  
  2827.   CPY copies active objects.
  2828.  
  2829.   ■ The displacement is determined by a 2-point coordinate input.
  2830.  
  2831.   ■ The original objects are made inactive and the copies are made active.
  2832.  
  2833.   ■ Boxes are copied if ALL sides are active.
  2834.  
  2835.   ■ Cells are copied if they are active.
  2836.  
  2837.   ■ Vertices of paths are copied only if they are active. To copy a path
  2838.     completely it must be fully active (use FGET). This feature allows you
  2839.     to copy sections of paths.
  2840.  
  2841.   ■ Text is copied if it is active.
  2842.  
  2843.   ■ CPY accepts a single PKE distance entry.
  2844.  
  2845.   Read STEP.
  2846.  
  2847.  Cut
  2848.  
  2849.   CUT breaks a path into two separate paths at an active vertex.
  2850.  
  2851.   ■ This command works if there is ONLY ONE active vertex.
  2852.  
  2853.   ■ The last vertex at the cut point of the newly created path is made
  2854.     active.
  2855.  
  2856.   Use this command to break paths and polygons into smaller segments to
  2857.   create new constructions, and to make shorter paths and polygons that
  2858.   will be more manageable for translation into other CAD systems.
  2859.  
  2860.  cWSz
  2861.  
  2862.   CWSZ (change width and size) changes the WIDTH of paths and the SIZE of
  2863.   text.
  2864.  
  2865.   ■ Paths with ANY vertex active will change width.
  2866.  
  2867.   ■ Any active text will change its size, and the text size will be
  2868.     adjusted so that it is a integer multiple of 15 basic units.
  2869.  
  2870.   CWSZ can be used to change the end types of paths. Positive width causes
  2871.   a path to have an INLINE end, with the vertex is on the end face. A
  2872.   negative width gives the path an EXTENDED end, with the end face extended
  2873.   half the width out from the vertex.
  2874.  
  2875.   When the width of a path is changed, the position of the end faces
  2876.   remains constant. This prevents gaps or overlaps when path widths are
  2877.   changed.
  2878.  
  2879.   Important: CWSZ has a path end type changing feature. Typing in "+*" or
  2880.     just "*" for the new path width changes ALL active paths to INLINE end
  2881.     types, but keeps the absolute value of the width. Typing "-*" changes
  2882.     all active paths to EXTENDED end types, but keeps the width. When the
  2883.     end types are changed, the position of the end faces stays the same.
  2884.     This is very useful if you want to change all paths (with different
  2885.     widths) in a drawing from one end type to the other.
  2886.  
  2887.   Read WDTH and TSIZ.
  2888.  
  2889.  Dash
  2890.  
  2891.   DASH enters into the Layer Attribute Display and allows the type of dash
  2892.   to be set for a layer.
  2893.  
  2894.   ■ The pattern of the dash number is shown by the sample lines.
  2895.  
  2896.   ■ The dash number of the layer is shown above the corresponding colored
  2897.     layer number.
  2898.  
  2899.   ■ Typing "n" ENTER, will turn off all dashes until DASH is called again.
  2900.  
  2901.   To exit, press ESC to the "Dash Layer" question.
  2902.  
  2903.  Del
  2904.  
  2905.   DEL deletes objects or parts of objects.
  2906.  
  2907.   ■ An object's layer must be viewed and opened to be deleted.
  2908.  
  2909.   ■ Boxes are deleted if ALL sides are active.
  2910.  
  2911.   ■ Active vertices of paths are deleted.
  2912.  
  2913.   ■ Paths with ONE or NO vertices on any layer are deleted.
  2914.  
  2915.   ■ Text is deleted if it is active.
  2916.  
  2917.   ■ Cells that are active are deleted without regard to the layers that
  2918.     they contain and the setting of the VIEW and OPEN commands.
  2919.  
  2920.   Notes:
  2921.  
  2922.   1. Using DEL does NOT give back actual memory that has been allocated by
  2923.      the memory manager. If you make a large number of deletions and want
  2924.      to free memory, exit the current cell and then reenter it. The easy
  2925.      way is to use LIST and click on the current cell marked with the "*".
  2926.  
  2927.   2. When paths are deleted, the vertex data is resorted and condensed so
  2928.      that there is more space available for new paths. Doing this takes
  2929.      time. Expect a long delete time on cells that have a huge number of
  2930.      vertices. Be patient and watch the percent indicator.
  2931.  
  2932.  
  2933.   Important: Before any object is deleted, the hard disk files DSSBKUP.BP5
  2934.     and DSSBKUP.CL5 are updated. If you make a mistake and delete the wrong
  2935.     thing, you can use the UNDO command to restore the drawing.
  2936.  
  2937.  dGrd
  2938.  
  2939.   DGRD (dot grid) steps through the list of dotted grids.
  2940.  
  2941.   ■ The dot grids should have been entered using the SET command.
  2942.  
  2943.   ■ The present dot grid will be shown at the bottom of the screen.
  2944.  
  2945.   ■ Each cell rank may have a different grid from the list of grids.
  2946.  
  2947.   Note: DGRD when assigned to a function key accepts a numerical argument.
  2948.     For example, a parameter in the FORM.DBD file "fkey=dgrd,10" assigns a
  2949.     function key so that when the key is pressed the dot grid is set to 10
  2950.     physical units. However, if "fkey=dgrd" is the parameter, you will be
  2951.     prompted for a dot grid to be set.
  2952.  
  2953.   Read SET and the General Information/Form File topic.
  2954.  
  2955.  DOS
  2956.  
  2957.   DOS temporally runs other programs from the DOS command line.
  2958.  
  2959.   ■ At least 64KB of memory must be available for this command to work.
  2960.  
  2961.   ■ The DOS command from System Mode makes more memory available than the
  2962.     DOS command from Cell Mode because System Mode deallocates drawing
  2963.     space. If you use too much memory you may get an "Not Available"
  2964.     message.
  2965.  
  2966.   ■ Certain DOS command line operations may be done, DIR for example.
  2967.  
  2968.   ■ Certain small programs may be run if they can load into available
  2969.     memory.
  2970.  
  2971.   DO NOT run LASI utility programs from this command since the drawing
  2972.   information may not be current on the hard disk.
  2973.  
  2974.  Dpth
  2975.  
  2976.   DPTH sets the depth level to which nested cells are fully drawn.
  2977.  
  2978.   ■ The first level of cells greater than the depth is drawn as dotted
  2979.     outlines.
  2980.  
  2981.   ■ The depth may be set at any level between 0 and 15.
  2982.  
  2983.   ■ Setting depth to 0 causes the first level of cells to be drawn as
  2984.     dotted outlines.
  2985.  
  2986.   ■ Setting depth to 15 allows all levels of cells to be drawn fully.
  2987.  
  2988.   Notes:
  2989.  
  2990.   1. If a cell on the first level is drawn as a dotted outline due to the
  2991.      depth being set to 0, it is NOT an outlined cell and may be edited
  2992.      just like it was a fully drawn cell.
  2993.  
  2994.   2. Depth of cell nesting is not to be confused with a cell's rank. The
  2995.      rank of a cell determines how deeply cells can be nested within that
  2996.      cell. The depth is how far down in the nesting levels the occurrence
  2997.      of a cell is found. The depth of a nested cell can be no deeper than
  2998.      the current cell's rank minus the nested cell's rank.
  2999.  
  3000.   Hint: If you want to be sure you are drawing all cells, set DPTH to the
  3001.     current cell's rank.
  3002.  
  3003.  Draw
  3004.  
  3005.   DRAW erases the drawing window and redraws the current cell.
  3006.  
  3007.   ■ Drawing of boxes, paths and text takes place in ascending layer order.
  3008.  
  3009.   ■ In each cell nesting, lesser cells are drawn starting at the lowest
  3010.     rank and are overlayed upward.
  3011.  
  3012.   ■ The boxes, paths and text of the current cell always overlay all layers
  3013.     of any lesser cells.
  3014.  
  3015.   ■ Clicking the RIGHT mouse button (or pressing ESC) while cells are being
  3016.     drawn aborts full drawing of any remaining cells and draws only a
  3017.     dotted outline.
  3018.  
  3019.   ■ Clicking the RIGHT mouse button (or pressing ESC) while boxes, paths or
  3020.     text are being drawn aborts further drawing.
  3021.  
  3022.   Notes:
  3023.  
  3024.   1. If a cell's objects exceed the memory available, or if a cell's BP5 or
  3025.      CL5 files are missing, a dotted outline with the cell's name in the
  3026.      lower left corner will be drawn to indicate that there is something
  3027.      that can't be drawn.
  3028.  
  3029.   2. Paths with widths near the unit grid limit may appear distorted. This
  3030.      is because all drawing points are set in the unit grid.
  3031.  
  3032.   3. If you try to draw a path or poly with a vertex count exceeding the
  3033.      limits of 250 and 500 respectively, the path or poly may not draw
  3034.      completely or fill correctly, but drawing will fail gracefully.
  3035.  
  3036.  
  3037.   Read the General Information/Toggle Buttons, Key Assignment and Drawing
  3038.   Speed topics for useful information.
  3039.  
  3040.  fGet
  3041.  
  3042.   FGET (full get) makes a box or path fully active.
  3043.  
  3044.   ■ A box is made fully active if ANY side is made active.
  3045.  
  3046.   ■ A path is made fully active if ANY vertex is made active.
  3047.  
  3048.   ■ FGET is the same as GET for text.
  3049.  
  3050.   ■ This command allows the entire box or path to be operated on by any
  3051.     subsequent command if only a part is accessible.
  3052.  
  3053.   If you want to delete a box or path completely use this command first.
  3054.  
  3055.  Fill
  3056.  
  3057.   FILL enters into the Layer Attribute Display and allows the type of fill
  3058.   to be set for a layer.
  3059.  
  3060.   ■ The pattern of the fill number is shown by the sample boxes.
  3061.  
  3062.   ■ The fill number of the layer is shown above the corresponding colored
  3063.     layer number.
  3064.  
  3065.   ■ Boxes, paths, closed polygons and closed text will be filled with the
  3066.     chosen fill pattern.
  3067.  
  3068.   ■ The fill of all layers may be temporally turned off by typing "n" ENTER
  3069.     to the "Fill Layer" question. Calling FILL again will turn the fill
  3070.     back on.
  3071.  
  3072.   ■ All layers may be temporally set to solid fill by typing "s", ENTER to
  3073.     the "Fill Layer" question. Calling FILL again will set the fill back to
  3074.     normal settings.
  3075.  
  3076.   To exit, press ESC to the "Fill Layer" question.
  3077.  
  3078.  Fit
  3079.  
  3080.   FIT sets the size of the drawing window so that it will show all of the
  3081.   objects in a cell.
  3082.  
  3083.   ■ There is no dependence in VIEW or OPEN.
  3084.  
  3085.   ■ The display is redrawn.
  3086.  
  3087.   ■ If there are no objects present, fit will expand the drawing area to
  3088.     the maximum size permitted or the whole "universe".
  3089.  
  3090.   Read DRAW and the General Information/Universe topic.
  3091.  
  3092.  Flp
  3093.  
  3094.   FLP flips objects.
  3095.  
  3096.   ■ Flipping in either X or Y determined by a 2-point coordinate input.
  3097.  
  3098.   ■ The larger dimension of the cursor input determines the flip axis.
  3099.  
  3100.   ■ The cursor will show the approximate flip axis.
  3101.  
  3102.   ■ Boxes flip if ALL sides are active.
  3103.  
  3104.   ■ ALL vertices of a path flip if ANY vertex is active.
  3105.  
  3106.   ■ Text will flip if active.
  3107.  
  3108.   Note: FLP and ROT do no commute. That is, the order in which these
  3109.     commands are used is important. Objects FLPed and ROTed in different
  3110.     orders are not the same.
  3111.  
  3112.   Read ROT.
  3113.  
  3114.  Form
  3115.  
  3116.   FORM lists the contents of the FORM.DBD file.
  3117.  
  3118.   ■ The FORM.DBD file is read just as it is written but omits function key
  3119.     definitions.
  3120.  
  3121.   ■ The commands that have been assigned to the function keys are listed
  3122.     with their corresponding key.
  3123.  
  3124.   ■ Press ESC or click the RIGHT mouse button to continue to the next page
  3125.     or to exit.
  3126.  
  3127.   Read the General Information/Form File and Key Assignment topics.
  3128.  
  3129.  fPut
  3130.  
  3131.   FPUT (full put) makes boxes, paths and text fully inactive.
  3132.  
  3133.   ■ This is the inverse of FGET.
  3134.  
  3135.   ■ A box is made fully inactive if ANY side is made inactive.
  3136.  
  3137.   ■ A path is made fully inactive if ANY single vertex is made inactive.
  3138.  
  3139.   ■ FPUT is the same as PUT for text.
  3140.  
  3141.   Use this command to make fully inactive a box or path when only a part of
  3142.   the box or path is displayed.
  3143.  
  3144.  Full
  3145.  
  3146.   FULL removes cells from being drawn as an outline.
  3147.  
  3148.   ■ Cells are changed from being drawn as an outline if a cell's area is
  3149.     completely enclosed by the rectangular cursor window.
  3150.  
  3151.   ■ If a cell is not found in the cursor window a cellname will be asked.
  3152.  
  3153.   Note: You can bypass enclosing the outline completely by holding down the
  3154.   CTRL key.
  3155.  
  3156.   Read OUTL.
  3157.  
  3158.  Get
  3159.  
  3160.   GET makes single parts of boxes and paths active.
  3161.  
  3162.   ■ The layer must be viewed and opened.
  3163.  
  3164.   ■ Box sides are made active if they intersect the rectangular cursor
  3165.     window.
  3166.  
  3167.   ■ Path vertices are made active if they intersect the cursor window.
  3168.  
  3169.   ■ Text is made active if its reference point intersects the cursor
  3170.     window.
  3171.  
  3172.   When made active:
  3173.  
  3174.   ■ Box sides turn bright white.
  3175.  
  3176.   ■ Vertices are marked and segments of paths that will move as a unit turn
  3177.     bright white.
  3178.  
  3179.   ■ Text turns bright white.
  3180.  
  3181.   GET is the default command when LASI is started.
  3182.  
  3183.  Grid
  3184.  
  3185.   GRID toggles the dot grid on and off.
  3186.  
  3187.   ■ The menu button intensifies to indicate that the grid is on.
  3188.  
  3189.   ■ The dot grid will not be drawn if the spacing is less that the drawing
  3190.     resolution set using the SET command.
  3191.  
  3192.   Read SET and DGRD.
  3193.  
  3194.  Hcpy
  3195.  
  3196.   HCPY redraws to full screen size and calls a program that prints a bitmap
  3197.   hardcopy of the screen.
  3198.  
  3199.   The name of the hardcopy program must be set in the "hcopy=" parameter in
  3200.   the FORM.DBD file.
  3201.  
  3202.   After the screen redraws:
  3203.  
  3204.   ■ Press ENTER if you want to add the name, date and time to the screen
  3205.     and start a hardcopy.
  3206.  
  3207.   ■ Press CTRL-ENTER if you want to make a hardcopy of the screen without
  3208.     the name, date and time.
  3209.  
  3210.   ■ Press ESC anytime if you want to abort hardcopying.
  3211.  
  3212.   Note: Hold down a CTRL key when you click the HCPY button if you want
  3213.     layers to be drawn in descending (64 -> 1) order.
  3214.  
  3215.   Read the General Information/Hardcopy and Form File topics.
  3216.  
  3217.  Info
  3218.  
  3219.   INFO identifies an active object or gives drawing information.
  3220.  
  3221.   ■ Objects are taken in the order: box/path/cell.
  3222.  
  3223.   ■ Only the first active object found is reported.
  3224.  
  3225.   ■ For a box the layer is shown.
  3226.  
  3227.   ■ For a path the layer and the width are shown.
  3228.  
  3229.   ■ For text the layer and size are shown.
  3230.  
  3231.   ■ For a cell the name, number, position and orientation are shown.
  3232.  
  3233.   ■ No active object gives tells the amount of memory that is still free.
  3234.  
  3235.   Read SHOW.
  3236.  
  3237.  Import
  3238.  
  3239.   IMPORT allows ATTACHED cells to be brought into a drawing as NORMAL
  3240.   cells.
  3241.  
  3242.   Rules for IMPORTing:
  3243.  
  3244.   ■ The source must be an ATTACHED cell in the drawing cell collection.
  3245.  
  3246.   ■ If the destination cell has the SAME NAME as the source cell, the cell
  3247.     becomes a NORMAL cell and replaces all occurrences of its use in all
  3248.     other cells.
  3249.  
  3250.   ■ If the destination cell has a NEW NAME, a NEW NORMAL cell will be
  3251.     created with the new name.
  3252.  
  3253.   ■ The destination will always become a rank 1 cell.
  3254.  
  3255.   ■ If the source cell is not attached, the destination cell is already
  3256.     present or is an attached cell with a different name, the command will
  3257.     be aborted.
  3258.  
  3259.   ■ Cells never export back to the pool.
  3260.  
  3261.   If imported to the SAME NAME, a BP5 file will be copied from the pool to
  3262.   the drawing directory. You would use this procedure if you want to
  3263.   replace all occurrences of an attached cell in other cells with a normal
  3264.   cell that may be modified. You can then RENAME the normalized cell, and
  3265.   ATTACH the original cell again to make other modified versions.
  3266.  
  3267.   If the destination has a NEW NAME, a new normal cell will be created and
  3268.   the attached cell will remain unaffected. You can then modify the new
  3269.   cell and use it where desired.
  3270.  
  3271.   Notice that the difference between these two procedures is that in the
  3272.   first procedure the attached cell is replaced automatically wherever it
  3273.   is used. In the second procedure you generate an independent cell and you
  3274.   must replace any occurrences of the attached cell individually.
  3275.  
  3276.   If the source or destination cells are incorrect, or if importing will
  3277.   overflow the memory available, the import operation will be cancelled and
  3278.   a message will be shown.
  3279.  
  3280.   Read COPY.
  3281.  
  3282.  Join
  3283.  
  3284.   JOIN connects two paths head to tail to form a new single path.
  3285.  
  3286.   Rules for JOINing:
  3287.  
  3288.   ■ This command works only if there are exactly two active vertices which
  3289.     are the beginning and end of a path.
  3290.  
  3291.   ■ If the active vertices are beginning and end of the same path and the
  3292.     path is not already closed, a segment will be added to close the path
  3293.     and both vertices will be made inactive.
  3294.  
  3295.   ■ If the active vertices are beginning and end of different paths and the
  3296.     vertices are at the same location, the paths will be merged into a
  3297.     single path, one vertex will be deleted, and one vertex will be made
  3298.     inactive.
  3299.  
  3300.   ■ If the active vertices are beginning and end of different paths and the
  3301.     vertices are at different locations, a segment will be added, the paths
  3302.     will be merged into a single path, and both vertices will be made
  3303.     inactive.
  3304.  
  3305.   Use this command to condense paths to reduce data, and to make closed
  3306.   polygons out of open polygon segments.
  3307.  
  3308.  Kill
  3309.  
  3310.   KILL removes a cell from the drawing.
  3311.  
  3312.   All Cells with rank greater than 1 are first checked for the cell to be
  3313.   KILLed. If any cell contains the cell, you will be asked if you want to
  3314.   continue.
  3315.  
  3316.   When KILLed:
  3317.  
  3318.   ■ Cells are removed from the drawing's cell collection.
  3319.  
  3320.   ■ Cells are removed from any other cells.
  3321.  
  3322.   ■ The cell internal files at the DOS system level are erased.
  3323.  
  3324.   Important: It is recommended that you keep an archive of your cells using
  3325.     the TLCOUT.EXE utility program. This is the only way that you can
  3326.     recover a cell that has been accidentally KILLed.
  3327.  
  3328.  Layr
  3329.  
  3330.   LAYR sets the default layer of boxes and paths to be added.
  3331.  
  3332.   ■ If in numbered layer mode, and the value entered is not 1 through 64,
  3333.     the layer will be reasked with the default in the white box..
  3334.  
  3335.   ■ If the Layer Table is on, click the layer button to set a new layer.
  3336.  
  3337.   Read CLYR.
  3338.  
  3339.  lDrw
  3340.  
  3341.   LDRW (layer draw) redraws only one layer of the drawing.
  3342.  
  3343.   ■ If the Layer Table is used, click the LEFT (or RIGHT) mouse button on
  3344.     one of the layer buttons.
  3345.  
  3346.   ■ If numbered layers are used, enter a layer from 1 to 64.
  3347.  
  3348.   This command is useful with solid fills. It shows about what a mask will
  3349.   look like, and usually makes errors easier to spot.
  3350.  
  3351.   Read DRAW, SDRW and RDRW.
  3352.  
  3353.  List
  3354.  
  3355.   LIST lists the cells in the cell collection.
  3356.  
  3357.   ■ This command appears in both System and Cell Modes.
  3358.  
  3359.   ■ The mouse will also be active and the cursor can be positioned on the
  3360.     name of any of the cells listed. If the LEFT mouse button is clicked on
  3361.     the cellname, Cell Mode will be entered for that cell.
  3362.  
  3363.   ■ Clicking the LEFT mouse button in a location that will not select a
  3364.     cell will step to the next page or will exit to the present mode.
  3365.  
  3366.   ■ Pressing ESC or clicking the RIGHT mouse button will step to the next
  3367.     page or will exit to the present mode.
  3368.  
  3369.   ■ Attached cell names appear in red in the cell list.
  3370.  
  3371.   The list of cells has a history feature. The number that appears in front
  3372.   of a cellname indicates the inverse order in which the cells were last
  3373.   opened. That is, number 1 is the last cell you worked on, number 2 the
  3374.   second to last, and so on. This allows you to go through a sequence of
  3375.   deeply nested cells, and then randomly return to a higher ranked cell.
  3376.  
  3377.   Rules for cell history:
  3378.  
  3379.   ■ If a cell is opened again, previous events for that cell are purged
  3380.     from the history.
  3381.  
  3382.   ■ An asterisk indicates the current cell.
  3383.  
  3384.   Hint: LIST is the fastest way to change from cell to cell because you
  3385.     don't have to type or even precisely remember a cellname.
  3386.  
  3387.  Make
  3388.  
  3389.   MAKE makes a new cell from the active cells, boxes, paths and text.
  3390.  
  3391.   Rules for MAKE:
  3392.  
  3393.   ■ Boxes, paths and text are copied if ANY part is active.
  3394.  
  3395.   ■ The rank of the new cell will be one higher than the highest rank of
  3396.     any active cells.
  3397.  
  3398.   ■ The name must not already be in the cell collection. If it is, the
  3399.     prompt will be reasked. No name at all or ESC will cancel MAKE.
  3400.  
  3401.   Note: When MAKE makes a new cell it first determines the area or outline
  3402.     of the current cell on which you are working. It then uses this area as
  3403.     the area of the new cell. It also uses the current origin as the origin
  3404.     of the new cell. Normally, you will enter into Cell Mode with the new
  3405.     cell and reposition the origin with the ORIG command. When Cell Mode is
  3406.     then exited the correct area will be recalculated.
  3407.  
  3408.   Hint: When MAKE is used to create a new cell, its name is at the end of
  3409.     the cell list. Use LIST to go to the new cell to make any changes.
  3410.  
  3411.  
  3412.   MAKE can be used to copy all or part of one cell to another cell. First
  3413.   make a temporary cell and then go to System Mode and COPY the temporary
  3414.   cell to the destination cell. When you enter the destination cell the you
  3415.   will find the temporary cell appended to it. You can later KILL the
  3416.   temporary cell. Notice that you are in effect placing all or part of a
  3417.   cell on a "clipboard" and then inserting the objects on the clipboard
  3418.   into another cell. This is a common procedure used with many types of
  3419.   data transfer.
  3420.  
  3421.  Mov
  3422.  
  3423.   MOV moves the active sides of boxes, active vertices, active text and
  3424.   active cells.
  3425.  
  3426.   ■ The distance is determined from a 2-point coordinate input.
  3427.  
  3428.   ■ The cursor will show the approximate move.
  3429.  
  3430.   ■ MOVs are always done in multiples of the working grid, unless you press
  3431.     the A or ALT keys to switch to the unit grid.
  3432.  
  3433.   ■ MOV accepts a single PKE distance entry.
  3434.  
  3435.   Read WMOV, QMOV and CMOV.
  3436.  
  3437.  Obj
  3438.  
  3439.   OBJ sets the name or type of object to be added.
  3440.  
  3441.   ■ Entering "b" will make boxes and "p" will make polygons and paths.
  3442.  
  3443.   ■ For adding a cell give the NAME of the cell.
  3444.  
  3445.   Note: Boxes, paths and cells are treated equally as far as adding is
  3446.     concerned. However, boxes, paths and text are "basic" objects while
  3447.     cells are compound objects. Generally, there are different commands for
  3448.     these different types of objects.
  3449.  
  3450.  Open
  3451.  
  3452.   OPEN sets the layers that can have their boxes, paths and text made
  3453.   active.
  3454.  
  3455.   ■ Boxes, paths and text that are not opened are blocked from the GET,
  3456.     FGET, WMOV, QMOV, PBEG and PEND commands.
  3457.  
  3458.   ■ Cell commands like CGET, CPUT or CMOV are not affected.
  3459.  
  3460.   ■ Each cell rank may have different OPEN parameters.
  3461.  
  3462.   OPEN works differently depending on whether the Layer Table is on or off.
  3463.  
  3464.   Layer Table OFF:
  3465.  
  3466.     OPEN accepts layer inputs that can be single layer numbers in any
  3467.     order, or a dash (-) can be used to indicate all inclusive layers
  3468.     between the end layers. A dash alone will give all layers from 1 to 64.
  3469.  
  3470.   Layer Table ON:
  3471.  
  3472.     Individual layers can be opened or closed by clicking the mouse on the
  3473.     layer button (defined in FORM.DBD). The button brightens if on.
  3474.  
  3475.   Note: CTRL-ENTER toggles the Layer Table on and off.
  3476.  
  3477.   Read VIEW.
  3478.  
  3479.  Orig
  3480.  
  3481.   ORIG relocates the coordinates of all objects in a cell drawing so that
  3482.   the single cursor input point is the 0,0 position.
  3483.  
  3484.   ■ This command allows objects to be constructed almost anywhere on the
  3485.     drawing window and then be repositioned as desired.
  3486.  
  3487.   ■ The working grid is the default grid, but may be changed to the unit
  3488.     grid with the A or ALT keys.
  3489.  
  3490.   Set you cell origin as soon as you make a cell, or you may have to
  3491.   relocate the cell each time it is used in higher ranking cells.
  3492.  
  3493.  Outl
  3494.  
  3495.   OUTL sets cells to draw as an outline.
  3496.  
  3497.   ■ A cell can be turned into an outline in two ways:
  3498.  
  3499.     Cells are changed to outlines if a cell's area is completely enclosed
  3500.     by the rectangular cursor window.
  3501.  
  3502.     If the mouse is double clicked while making the cursor window, cells
  3503.     will be outlined if the cell's area overlaps the cursor window.
  3504.  
  3505.   ■ An outlined cell will be drawn as a white rectangle with the name of
  3506.     the cell in text in the lower left corner. An active cell in outline
  3507.     will be drawn as a bright white rectangle filled with dots.
  3508.  
  3509.   ■ The cell's name can be toggled on and off by pressing the N key. An
  3510.     intensified "N" displayed in the upper right of the screen indicates
  3511.     that names are ON.
  3512.  
  3513.   ■ If a cell is not found in the cursor window a cellname will be asked.
  3514.  
  3515.   You can greatly speed up an overall redraw by setting the cells in an
  3516.   region where you are not currently working to outline. When a cell is set
  3517.   to outline, retrieval of the cell's files from a disk is unnecessary and
  3518.   drawing the internal parts of a cell is skipped.
  3519.  
  3520.   Read FULL.
  3521.  
  3522.  OvSz
  3523.  
  3524.   OVSZ (oversize) expands the sides of boxes, paths and closed poly by a
  3525.   certain distance.
  3526.  
  3527.   Rules for OVSZing:
  3528.  
  3529.   ■ A negative distance shrinks the sides.
  3530.  
  3531.   ■ Only active box sides are oversized.
  3532.  
  3533.   ■ All sides of paths or closed polygons are oversized if ANY vertex is
  3534.     active.
  3535.  
  3536.   ■ The oversizing algorithm used must identify a polygon as having a
  3537.     rotational angle of +/-360 deg. If this cannot be done, the poly will
  3538.     be unchanged.
  3539.  
  3540.   ■ If a poly contains adjacent sides that are folded back 180 deg on each
  3541.     other, the results will be undefined since the direction of folding
  3542.     cannot be identified.
  3543.  
  3544.   Note: Acute angles on closed poly are not oversized correctly. You need
  3545.     to insert an additional vertex at an acute angle to prevent the peak of
  3546.     an acute angle from extending beyond the oversize distance.
  3547.  
  3548.   Read RESZ.
  3549.  
  3550.  pBeg
  3551.  
  3552.   PBEG (path beginning) makes the first vertex of a path active.
  3553.  
  3554.   ■ This command works if ANY vertex of a path intersects the rectangular
  3555.     cursor window.
  3556.  
  3557.   ■ PBEG is useful when the JOIN command is to be used.
  3558.  
  3559.   Read PEND.
  3560.  
  3561.  pEnd
  3562.  
  3563.   PEND (path end) makes the last vertex of a path active.
  3564.  
  3565.   ■ This command works if ANY vertex of a path intersects the rectangular
  3566.     cursor window.
  3567.  
  3568.   ■ This command is useful both to find the end of a path and to reopen a
  3569.     closed path.
  3570.  
  3571.   Read PBEG.
  3572.  
  3573.  Plot
  3574.  
  3575.   PLOT calls the plotting program.
  3576.  
  3577.   ■ The plotting program is named in the FORM "plot=" parameter.
  3578.  
  3579.   ■ A plot will be made of the last cell as it was shown in the drawing
  3580.     window.
  3581.  
  3582.   ■ The cellname, the drawing window center X,Y and width, and the viewed
  3583.     layers are passed to the plotting program.
  3584.  
  3585.   Notes:
  3586.  
  3587.   1. All plotting programs can rotate 90 deg. If you use the PLOT command
  3588.      with the "Rotate" set in the plotter program, you might get a plot
  3589.      that could be drawn at a larger scale. The reason for this is that
  3590.      LASI passes the dimensions of the drawing area, which is wider than it
  3591.      is high. When rotated it is fitted to the narrower dimension of the
  3592.      plot paper. To make a largest scale plot of a overall cell just press
  3593.      the "Fit" key in the plotter program.
  3594.  
  3595.   2. It is slightly possible that you will not have enough contiguous
  3596.      memory available to run a plot program from LASI. If this happens, the
  3597.      program will not execute and you will return to LASI. To improve this
  3598.      situation remove or move to high memory any unnecessary resident
  3599.      drivers (TSRs), if they are being kept in conventional memory . If
  3600.      this fails, run the plotting program by itself.  Read the help on any
  3601.      plotting program for how to do this.
  3602.  
  3603.  pRev
  3604.  
  3605.   PREV (path reverse) reverses the order of the vertices in a path.
  3606.  
  3607.   ■ ALL paths that have ANY active vertex will be reversed.
  3608.  
  3609.   ■ The original active vertex remains active.
  3610.  
  3611.   Reversing the order allows vertices to be added to either the beginning
  3612.   or end of a path. It also allows paths to be JOINed properly.
  3613.  
  3614.  Put
  3615.  
  3616.   PUT makes single parts of boxes, paths and text inactive.
  3617.  
  3618.   ■ This is the inverse of GET and works the same way.
  3619.  
  3620.   Read FPUT and APUT.
  3621.  
  3622.  qMov
  3623.  
  3624.   QMOV (quick move) functions like the sequence GET, MOV, PUT.
  3625.  
  3626.   ■ Box sides are moved if they INTERSECT the rectangular cursor window.
  3627.  
  3628.   ■ Vertices of paths move if they intersect the cursor window.
  3629.  
  3630.   ■ Text is moved if the reference point intersects the cursor window.
  3631.  
  3632.   ■ Box, path and text layers must be viewed and opened.
  3633.  
  3634.   ■ The move part of this command accepts a single PKE distance entry.
  3635.  
  3636.   QMOV is useful for making small vertex movements and small box side
  3637.   movements when the path or box is only partly accessible.
  3638.  
  3639.   Read WMOV.
  3640.  
  3641.  Quit
  3642.  
  3643.   QUIT exits from the LASI drawing system to DOS.
  3644.  
  3645.   ■ All current information about the drawing is saved on the hard disk in
  3646.     the drawing directory.
  3647.  
  3648.   ■ The condition of DOS when LASI was entered is restored.
  3649.  
  3650.   The drawing may be reentered by running LASI.EXE again. However, the
  3651.   cells that may have been stored on a RAM drive will be unknown to LASI
  3652.   and will have to be relearned by drawing them once.
  3653.  
  3654.   CTRL-END has the same effect as QUIT.
  3655.  
  3656.  ReName
  3657.  
  3658.   RENAME changes the name of a cell.
  3659.  
  3660.   ■ Cellnames must conform to DOS filename rules.
  3661.  
  3662.   ■ This command will not work if the new name is the name of a cell that
  3663.     already exists in the cell collection or is a reserved name such as "b"
  3664.     or "p".
  3665.  
  3666.   To give a cell another cell's name in a cell collection, you must first
  3667.   RENAME or KILL the original cell and then RENAME the cell.
  3668.  
  3669.  ReRank
  3670.  
  3671.   RERANK changes the rank of a cell and adjusts all other cell ranks.
  3672.  
  3673.   The command works in two ways depending on the cellname:
  3674.  
  3675.     If the name if a cell is given as "*", ALL cells will be checked and
  3676.     the LOWEST possible rank will be assigned to them.
  3677.  
  3678.     If the NAME of an actual cell is given, a NEW RANK for that cell only
  3679.     will be requested. ALL cells will then be checked, and new ranks will
  3680.     be assigned according to nesting and the NEW RANK of the NAMED cell.
  3681.     Cells that do not contain the NAMED cell will be unaffected.
  3682.  
  3683.  
  3684.   Rules for Reranking:
  3685.  
  3686.   ■ If a NEW RANK is less than or equal to the rank of any lesser cells
  3687.     within the named cell, the new rank will only go down to one higher
  3688.     than the rank of any lesser cells.
  3689.  
  3690.   ■ Attached cells may not be reranked.
  3691.  
  3692.   ■ When you rerank, a backup of the list of cells is made. If reranking
  3693.     fails, for example, if ranks are forced to exceed 15, the original
  3694.     ranks will be restored.
  3695.  
  3696.   ■ If you manage to bring a cell into the drawing that has lesser cells
  3697.     with rank greater than or equal to the cell's rank (possibly by using
  3698.     TLC) the lesser cells will draw as dotted outlines. Using RERANK should
  3699.     fix this problem.
  3700.  
  3701.   ■ Any CL5 files of cells are preserved, except if a cell is rank 1 and
  3702.     the cell has no cells (i.e. it has a null CL5 file). Then, if you enter
  3703.     and exit Cell Mode with that cell, the CL5 file will be erased. This is
  3704.     to keep you from cluttering your drawing directory with null files.
  3705.  
  3706.   ■ Reranking can take a minute or so because multiple passes are made
  3707.     reading the CL5 files on the hard disk. Wait for the "Done!"
  3708.  
  3709.  Res
  3710.  
  3711.   RES calls the resistance calculator.
  3712.  
  3713.   To measure resistance:
  3714.  
  3715.   1. You first must enter the sheet resistance in resistance units/square.
  3716.      This will usually be ohms/square.
  3717.  
  3718.   2. You will next be asked for the End Compensation. This is the number of
  3719.      squares to be added or subtracted to compensate for any effects of
  3720.      resistor heads. This depends on how you draw your resistors and can be
  3721.      a fractional number.
  3722.  
  3723.   3. After you enter the sheet resistance, if a path with ANY active vertex
  3724.      is found, the path will be automatically traced from beginning to end
  3725.      and the total resistance will be displayed. If a SEGMENT is active
  3726.      (displayed in bright white) it will be summed into the resistance,
  3727.      otherwise, it will not be counted. To FULLY measure a resistor, use
  3728.      FGET on it.
  3729.  
  3730.   If automatically measured:
  3731.  
  3732.      If a path has zero width (poly), one physical unit of width will be
  3733.      the default, and the length of the segments will be measured.
  3734.  
  3735.      To compensate for corners, half the width is always subtracted from
  3736.      each segment length unless the path has zero width.
  3737.  
  3738.  
  3739.   4. After a SINGLE path is measured the command will enter manual mode.
  3740.  
  3741.   5. If no path has been found, you will have to manually enter the
  3742.      resistor width, otherwise, the path width is taken as the resistor
  3743.      width.
  3744.  
  3745.   6. In manual mode, at the "<-->" command prompt, the width of the
  3746.      resistor must be measured by a 2-point coordinate input or a single
  3747.      PKE distance entry.
  3748.  
  3749.   7. At the command prompt "R-->", you can then calculate resistance by
  3750.      making 2-point coordinate distance measurements along the length of a
  3751.      resistor. The distance will be displayed by a dashed line, and the
  3752.      incremental resistance and the total resistance will be displayed at
  3753.      the bottom of the screen.
  3754.  
  3755.   8. To end measuring, click the mouse on any menu button except a window
  3756.      command, or press ESC.
  3757.  
  3758.   Note: To automatically measure a path, it must be a path in the present
  3759.     cell. Paths that are visible but are part of a cell within the present
  3760.     cell must still be manually measured.
  3761.  
  3762.   This command can be used as a ratio parameter calculator.
  3763.  
  3764.   For example, to measure the perimeter of a complex polygon, make it fully
  3765.   active and let RES measure its total length. Make any segments inactive
  3766.   if you don't want them included.
  3767.  
  3768.   To measure a MOS gate size, set the sheet resistance to 1 and measure the
  3769.   gate width as the resistor width and the gate length as the resistor
  3770.   length.
  3771.  
  3772.  ReSize
  3773.  
  3774.   RESIZE multiplies the basic units of all the position data in a cell.
  3775.  
  3776.   ■ To change a single cell give the name of the cell.
  3777.  
  3778.   ■ To change ALL cells in a collection give the name as "*".
  3779.  
  3780.   ■ Changes are limited to multipliers of 0.1 to 10 at a time.
  3781.  
  3782.   Use this command to change old LASI drawings made by LASI 4.X to higher
  3783.   resolution in LASI 5.1.
  3784.  
  3785.  rDrw
  3786.  
  3787.   RDRW (reverse draw) redraws the drawing with the layers in descending
  3788.   order.
  3789.  
  3790.   ■ This draws layers sequentially in reverse (64 -> 1).
  3791.  
  3792.   ■ This draws only viewed layers. To speed up drawing, only VIEW layers
  3793.     that you want to see. Using the Layer Table works nicely.
  3794.  
  3795.   This command is useful if you want to overlay solid fills so that objects
  3796.   that would normally be covered by higher layers remain visible.
  3797.  
  3798.   Read DRAW and SDRW.
  3799.  
  3800.  ReSz
  3801.  
  3802.   RESZ (resize) changes the size of boxes and paths while still preserving
  3803.   their shape.
  3804.  
  3805.   ■ The multiplier is 1 for no change, and is limited to >=.01 to <=100.
  3806.  
  3807.   ■ The geometric center of the box or path is kept constant.
  3808.  
  3809.   ■ If a small path is resized or if it is made too small, it may change
  3810.     shape due to the limited resolution of the unit grid.
  3811.  
  3812.   ■ RESZ acts on boxes with ANY side active or paths with ANY vertex
  3813.     active.
  3814.  
  3815.   Use RESZ to make different sizes of complex figures to save drawing time.
  3816.  
  3817.   Read OVSZ.
  3818.  
  3819.  Rot
  3820.  
  3821.   ROT rotates objects.
  3822.  
  3823.   ■ Rotation is around a single cursor input point.
  3824.  
  3825.   ■ Boxes, text and cells rotate +/-90, 180 deg.
  3826.  
  3827.   ■ Paths rotate through any angle.
  3828.  
  3829.   ■ Boxes rotate if ALL sides are active.
  3830.  
  3831.   ■ ALL vertices of a path rotate if ANY vertex is active.
  3832.  
  3833.   ■ Text and cells rotate if they are active.
  3834.  
  3835.   Note: Sometimes a rotated path may not be exactly identical to an
  3836.     original if it has been rotated and then rotated back. This is caused
  3837.     by rounding coordinates to the unit grid each time a rotation is done.
  3838.  
  3839.   Read FLP.
  3840.  
  3841.  Rstr
  3842.  
  3843.   RSTR restores a drawing window.
  3844.  
  3845.   ■ RSTR does not accept keyboard entries in the usual way, that is,
  3846.     terminated by ENTER. It requires only a number key to be pressed.
  3847.  
  3848.   ■ Only the keys 0-9 will execute the command, otherwise the window number
  3849.     will be reasked.
  3850.  
  3851.   ■ Window 0 is always the previous window.
  3852.  
  3853.   ■ Windows 1-9 should have been saved using the SAVE command.
  3854.  
  3855.   ■ The restored drawing window is immediately redrawn.
  3856.  
  3857.   ■ Press ESC to abort RSTR.
  3858.  
  3859.   Note: RSTR has a LAST WINDOW FEATURE. Whenever a window is changed, the
  3860.     previous window remembered. Reclicking the LEFT (or RIGHT) mouse button
  3861.     will cause the original window to be restored.
  3862.  
  3863.  Save
  3864.  
  3865.   SAVE saves a drawing window.
  3866.  
  3867.   ■ The windows are numbered 1-9.
  3868.  
  3869.   ■ SAVE does not accept keyboard entries in the usual way, that is,
  3870.     terminated by ENTER. It requires only a number key to be pressed.
  3871.  
  3872.   ■ Only the keys 1-9 are acceptable window numbers, otherwise, the window
  3873.     number will be reasked.
  3874.  
  3875.   ■ Press ESC to abort SAVE.
  3876.  
  3877.   The windows saved are global, that is they are independent of the Cell
  3878.   Mode rank that you are in. The windows are stored in the CONSTS5.DBD file
  3879.   when you quit LASI, and are returned when you rerun the program.
  3880.  
  3881.  Scale
  3882.  
  3883.   SCALE is used to set the name of the physical scale units of the drawing
  3884.   and the number of basic units per physical unit.
  3885.  
  3886.   Rules for setting scales:
  3887.  
  3888.   ■ The scale units name can be anything, but for integrated circuits "um"
  3889.     and "mil" are preferred because some utility programs use these units.
  3890.  
  3891.   ■ Only the first 5 characters will be accepted for the scale name.
  3892.  
  3893.   ■ The number of basic units per physical unit will usually be an integer
  3894.     greater than 1, but fractional scales are permitted.
  3895.  
  3896.   The scale that is set by this command really only relates the basic units
  3897.   in which a drawing is internally done to the inputs that you give to
  3898.   certain questions and to dimensions that you see externally. All inputs
  3899.   and outputs are converted by the scale to and from basic units.
  3900.  
  3901.   LASI 5.1 should have plenty of basic units for any IC to be drawn. It is
  3902.   then somewhat more convenient to set the number of basic units/physical
  3903.   unit first. For example, setting the basic units to 20 or 0.05um
  3904.   resolution results in a "universe" of 838,861um or a little less than a
  3905.   meter.
  3906.  
  3907.   You should only use as fine a resolution that you really need, which is
  3908.   usually limited by your mask pattern generator anyway. If you use too
  3909.   much resolution you will slow down some of the LASI utility programs
  3910.   (LASICKT.EXE for example) that work at the basic unit level.
  3911.  
  3912.  sDrw
  3913.  
  3914.   SDRW (sequential draw) redraws the drawing with the layers in ascending
  3915.   order.
  3916.  
  3917.   ■ This draws layers sequentially. (1 -> 64) without regard to cell
  3918.     nesting.
  3919.  
  3920.   ■ This shows overlays correctly, but is usually much slower than DRAW.
  3921.  
  3922.   ■ This draws only viewed layers. To speed up drawing, only view layers
  3923.     that you want to see. Using the Layer Table works nicely.
  3924.  
  3925.   This command is useful if you want to overlay solid fills so that you can
  3926.   check coverage by higher layers.
  3927.  
  3928.   Read DRAW and RDRW.
  3929.  
  3930.  Set
  3931.  
  3932.   SET allows you to change certain parameters and the actions of certain
  3933.   commands.
  3934.  
  3935.   Presently these parameters can be set:
  3936.  
  3937.   ■ The Resolution of the drawing.
  3938.  
  3939.       Resolution = size of drawing window / minimum size of figure.
  3940.  
  3941.   Resolution affects the following:
  3942.  
  3943.     Boxes are not drawn if both dimensions are less than the minimum size.
  3944.  
  3945.     Paths or poly are not drawn if the distance from the minimum vertex to
  3946.     the maximum vertex in both dimensions is less than the minimum size.
  3947.  
  3948.     Paths are drawn as lines if their width is less than the minimum size.
  3949.  
  3950.     Text is not drawn if its size is less than the minimum size.
  3951.  
  3952.     The dot grid is not draw if its spacing is less than the minimum size.
  3953.  
  3954.     Cells will not be expanded but will be drawn as a dotted outline if the
  3955.     outline dimensions are less than some multiple of the minimum size.
  3956.  
  3957.   Note: Normally, a resolution of 250-500 is about right for standard VGA.
  3958.     Usually there is no need to make the resolution greater than the number
  3959.     of pixels across the drawing window. Occasionally, some small figures
  3960.     may disappear if the resolution is too low. If this is a problem set
  3961.     the resolution higher.
  3962.  
  3963.   ■ The Text Spacing Ratio. This is the fraction of the text character
  3964.     field by which characters are spaced. This is limited between 0 and 1.0
  3965.     at discrete intervals. Setting this to 0.2 is about right.
  3966.  
  3967.   ■ The number of Double Click Ticks that determine the mouse button double
  3968.     click interval. The number is an integer and is clamped between 0 and
  3969.     32767. A tick is about 1/20 sec.
  3970.  
  3971.   ■ The number of Position Report Ticks that determine how often cursor
  3972.     position reports are made in Cell Mode. The number is an integer and
  3973.     will usually be set 0 to 10.
  3974.  
  3975.   ■ The  Mickey Multiplier or mouse sensitivity for the x and y-axes
  3976.     respectively. Set these numbers to whatever feels best with your mouse.
  3977.     The range is .1 to 10; 0 defaults to 1.
  3978.  
  3979.   ■ The Auto Backup Time. The time before an automatic SORT and backup
  3980.     takes place can be set. The time can be from 1 to 32767 minutes.
  3981.  
  3982.   ■ The number of Working Grids that you intend to use can be set so that
  3983.     you won't have to step through extra working grids with the WGRD
  3984.     command.
  3985.  
  3986.   ■ The Size of the Working Grids in physical units can be set. You must
  3987.     enter all the grids, but pressing ENTER or ESC keeps the default value
  3988.     in the white box.
  3989.  
  3990.   ■ The number of Dotted Grids that you intend to use can be set so that
  3991.     you won't have to step through extra dot grids with the DGRD command.
  3992.  
  3993.   ■ The Size of the Dot Grids in physical units can be set. You must enter
  3994.     all the grids, but pressing ENTER or ESC keeps the default value in the
  3995.     white box.
  3996.  
  3997.   Press ESC to exit SET anywhere in the sequence.
  3998.  
  3999.  Show
  4000.  
  4001.   SHOW gives information about an object.
  4002.  
  4003.   In System Mode, SHOW gives the following information about a cell:
  4004.  
  4005.   ■ The cell's rank, number in the cell collection and if it is attached.
  4006.  
  4007.   ■ The cell's outline boundaries as found in the cell collection list.
  4008.  
  4009.   ■ The number of cells, boxes, paths (includes text) and vertices in the
  4010.     cell.
  4011.  
  4012.   ■ A listing of the named cell's lesser cells.
  4013.  
  4014.   ■ The number of boxes and paths (includes text) on the layers.
  4015.  
  4016.  
  4017.   In Cell Mode, SHOW gives information on the first active object that it
  4018.   finds in the order. box/path/cell:
  4019.  
  4020.   ■ For a box, the positions of the sides and the layer are shown.
  4021.  
  4022.   ■ For a path, the vertex positions, the layer, the width and an active
  4023.     vertex mark "*" are shown.
  4024.  
  4025.   ■ For text, the reference point, the layer, the size and the characters
  4026.     will be shown.
  4027.  
  4028.   ■ For a cell, the information is similar to the System Mode SHOW, but
  4029.     also includes the position and orientation of the cell.
  4030.  
  4031.   ■ No active object gives the amount of memory still free.
  4032.  
  4033.   Press ESC or click the RIGHT mouse button to continue or exit from SHOW.
  4034.  
  4035.  Smsh
  4036.  
  4037.   SMSH smashes any active cells, text or boxes into their component objects
  4038.   and adds them to the current cell. The original active objects are
  4039.   deleted.
  4040.  
  4041.   Rules for Smashing:
  4042.  
  4043.   ■ Cells are smashed down one rank at a time. You may have to do multiple
  4044.     smashes if you want to reduce higher rank cells all the way to boxes,
  4045.     paths and text.
  4046.  
  4047.   ■ Text is smashed into poly objects that replace the original text. These
  4048.     poly are the same as any other poly, and may be rotated to any angle or
  4049.     given width to make paths. Smashing text can increase the number of
  4050.     paths and vertices considerably if you are not careful.
  4051.  
  4052.   ■ Boxes must have all sides active. A box will be replaced by a five
  4053.     vertex polygon with the same dimensions.
  4054.  
  4055.   Note: If you try to SMSH any object that will cause any of your object
  4056.     limits to be exceeded, or if you run out of memory, the object will not
  4057.     be smashed but will remain intact and active. You will get a message
  4058.     for each object component that cannot be added. If you are smashing
  4059.     text or boxes you may get a partial poly conversion, but the original
  4060.     object will remain.
  4061.  
  4062.   Important: Before any object is smashed, the hard disk files DSSBKUP.BP5
  4063.     and DSSBKUP.CL5 are updated. If you make a mistake and smash the wrong
  4064.     thing, you can use the UNDO command to restore the drawing.
  4065.  
  4066.  Sort
  4067.  
  4068.   SORT sorts and stores a backup of the drawing.
  4069.  
  4070.   ■ Boxes, paths and text are sorted into 16 zones over the area of a cell.
  4071.  
  4072.   ■ Cells are sorted by their position in the CELLS5.DBD file.
  4073.  
  4074.   ■ BP5 and CL5 files of the current cell are updated on the hard disk.
  4075.  
  4076.   ■ The backup files SORTBKUP.BP5 and SORTBKUP.CL5 are updated on the hard
  4077.     disk. If the UNDO command is used, these may be used to restore the
  4078.     cell to what it was when the last SORT was done.
  4079.  
  4080.   You may stop a long sort by pressing the SPACE bar. Eventually, when
  4081.   objects are in good order, sorting will be fast.
  4082.  
  4083.   SORT also moves objects that have been accidentally moved out of the
  4084.   maximum drawing area (universe) back into the drawing. This is done by
  4085.   adding or subtracting the maximum window width until the objects
  4086.   coordinates are in the drawing. Boxes and paths can be distorted by this
  4087.   operation and will have to be repaired or deleted.
  4088.  
  4089.  
  4090.   Note: The SORT command will be executed automatically if you do not click
  4091.     either mouse button before the Auto Sort Time times out. This feature
  4092.     protects your drawing if you leave it unattended. The Auto Sort Time
  4093.     can be set using the SET command.
  4094.  
  4095.   Hint: Sorting should be done periodically while working on a drawing.
  4096.     This not only cleans out any defective objects, but also improves
  4097.     drawing speed by ordering the cells.
  4098.  
  4099.  Snap
  4100.  
  4101.   SNAP moves box sides, vertices and cells to the nearest exact grid.
  4102.  
  4103.   ■ The grid will be requested in physical units at the bottom of the
  4104.     display. Press ESC to abort.
  4105.  
  4106.   ■ The default grid is always the minimum grid, so that any accidental use
  4107.     of SNAP will produce no change.
  4108.  
  4109.   ■ Each active box side is snapped independently to the grid.
  4110.  
  4111.   ■ Each active vertex of a path is snapped independently to the grid.
  4112.  
  4113.   ■ Active cells are snapped so that their reference points (0,0) are on
  4114.     the grid.
  4115.  
  4116.   ■ Active text is snapped so that its reference point is on the grid.
  4117.  
  4118.   ■ Before snapping, a backup of the drawing is made so that you can
  4119.     restore the drawing if you make an error.
  4120.  
  4121.   Important: SNAP is used to precisely grid a drawing. It normally is used
  4122.     to eliminate small errors in placement. It however can be dangerous if
  4123.     you make the snap grid too large. It can cause boxes and paths to be
  4124.     crushed if the nearest grid point turns out to be the same for more
  4125.     than one box side or vertex. Before any object is snapped, the hard
  4126.     disk files DSSBKUP.BP5 and DSSBKUP.CL5 are updated. If you make a
  4127.     mistake and incorrectly snap, you can use the UNDO command to restore
  4128.     the drawing.
  4129.  
  4130.  Step
  4131.  
  4132.   STEP steps active objects into an Nx by Ny two-dimensional array.
  4133.  
  4134.   ■ Stepping distances in X and Y are determined by a 2-point coordinate
  4135.     input. This may also be entered as a single PKE distance entry.
  4136.  
  4137.   ■ The original active objects are copied repeatedly just as though the
  4138.     CPY command was used. The final copied objects remain active, while all
  4139.     previous copies become inactive.
  4140.  
  4141.   ■ Nx and Ny are presently limited to 1024 max.
  4142.  
  4143.   ■ Stepping can be ended by pressing the SPACE bar.
  4144.  
  4145.   Note: Care should be used with this command because you can easily fill
  4146.     up your cell's object capacity if you don't watch your numbers. If this
  4147.     happens press SPACE to end stepping.
  4148.  
  4149.  Sys
  4150.  
  4151.   SYS exits directly from Cell Mode to System Mode.
  4152.  
  4153.   ■ All active objects are made inactive.
  4154.  
  4155.   ■ The current cell is saved on the hard disk in the drawing directory.
  4156.  
  4157.   Note: Any cells that may have been put on a RAM drive remain known to
  4158.     LASI when you go to System Mode. You lose these only when you QUIT.
  4159.  
  4160.  Text
  4161.  
  4162.   TEXT generates text objects.
  4163.  
  4164.   The command first asks for a Text Reference Point. The command will then
  4165.   work in two ways:
  4166.  
  4167.   ■ If the new reference point is exactly ON the reference point of any old
  4168.     text and the layer of the old text is OPEN, the old text object will be
  4169.     erased and its text string will appear in the input box at the bottom
  4170.     of the display. You can modify the text string as you wish. Any new
  4171.     text will have the layer, size and orientation of the old text.
  4172.  
  4173.   ■ If the reference point is not on old text, new text will be generated.
  4174.  
  4175.   The text character string may be up to 40 characters terminated by ENTER.
  4176.  
  4177.   The string of text should appear in the drawing made from polygons. The
  4178.   default layer and size of the characters will be shown at the bottom of
  4179.   the display when the TEXT command is resident. These may be set using the
  4180.   TLYR and TSIZ commands. The CLYR and CWSZ commands may be used to change
  4181.   the text layer and size after the text is made.
  4182.  
  4183.   Text Properties:
  4184.  
  4185.   ■ Text is always left justified and appears on a single line. There is no
  4186.     text editor, so you must delete and rewrite any text.
  4187.  
  4188.   ■ You can make the text active using the GET, TGET or FGET commands.
  4189.  
  4190.   ■ You may copy, rotate, flip and move the text using the CPY, ROT, FLP
  4191.     and the several types of move commands.
  4192.  
  4193.   ■ Text size will always be in integral multiples of 15 basic units. This
  4194.     is to prevent distortion of the characters.
  4195.  
  4196.   ■ A text object is seen by LASI as a single point, the reference point,
  4197.     and behaves just like a one-vertex path object, except that it is not
  4198.     automatically deleted by SORT and DEL commands.
  4199.  
  4200.   ■ The T key or "T" button toggles the reference point between visible
  4201.     (a small diamond, same color as text) and invisible. A intensified "T"
  4202.     displayed in the upper right of the screen indicates that reference
  4203.     points are visible.
  4204.  
  4205.   Hint: To make text characters that are to appear permanently on any IC
  4206.     masks, first make text of the appropriate size and then SMSH the text.
  4207.     Since any characters must have a width that will reproduce on the
  4208.     masks, you will first have to give the smashed poly some width with the
  4209.     CWSZ command, and then modify the paths using the MOV, CUT, JOIN, etc.
  4210.     commands to make the characters look better.
  4211.  
  4212.   Read the Text Generation help category for more information.
  4213.  
  4214.  tGet
  4215.  
  4216.   TGET (text get) makes text active.
  4217.  
  4218.   ■ This works like GET or FGET, but operates only on text.
  4219.  
  4220.   ■ The layer must be viewed and opened.
  4221.  
  4222.  tPut
  4223.  
  4224.   TPUT (text put) makes text inactive.
  4225.  
  4226.   ■ This works like PUT or FPUT, but operates only on text.
  4227.  
  4228.   ■ The layer must be viewed.
  4229.  
  4230.  tlcIn
  4231.  tlcOut
  4232.  
  4233.   TLCIN and TLCOUT are commands that call the TLCIN.EXE and TLCOUT.EXE
  4234.   programs which convert internal cell data TO and FROM transportable (TLC)
  4235.   format. "In" means convert TLC files FROM some source TO internal form in
  4236.   your present drawing. "Out" means convert FROM internal form in your
  4237.   present drawing TO some destination in TLC format.
  4238.  
  4239.   With either command, the default source or destination is the last source
  4240.   or destination path that you entered. Any acceptable drive or path may be
  4241.   entered.
  4242.  
  4243.   If you want to refer to TLC files in the current drawing directory leave
  4244.   the source or destination blank. It will default to "." the DOS name for
  4245.   the current directory.
  4246.  
  4247.   You may specify up to 10 cellnames separated by spaces.
  4248.  
  4249.   TLCOUT without any cellname(s) dumps ALL drawing cells as TLC files along
  4250.   with the CELLS.REF file to the destination.
  4251.  
  4252.   TLCIN without any cellname(s) retrieves ALL cells by reading the
  4253.   CELLS.REF file at the source and translating TLC files into internal file
  4254.   form (BP5 & CL5 files).
  4255.  
  4256.   These commands have considerable power since you can also specify the
  4257.   name of any system device as the source or destination. You can also give
  4258.   a path as part the disk specification, so that cell files can be TAKEN
  4259.   FROM or SENT TO other drives, paths or devices other than your drawing
  4260.   directory.
  4261.  
  4262.   Unless you are familiar with the use of DOS paths and remember just where
  4263.   you put things, you can get into trouble this way by mixing up the cells
  4264.   in different drawings.
  4265.  
  4266.   Note: These commands really only run TLCIN.EXE or TLCOUT.EXE as a child
  4267.     process from LASI. It is possible that you might run out of memory, and
  4268.     the program will return a "Not Available" or other error message. If
  4269.     this happens, you must run TLCIN.EXE or TLCOUT.EXE alone in memory.
  4270.     Read the TLC Conversion help category for instructions on running the
  4271.     TLC converters.
  4272.  
  4273.  tLyr
  4274.  
  4275.   TLYR (text layer) sets the default layer of text to be added.
  4276.  
  4277.   ■ If the value entered is not 1 through 64, the layer will be reasked.
  4278.  
  4279.   ■ If the Layer Table is on, click the layer button to set the text layer.
  4280.  
  4281.   Read CLYR.
  4282.  
  4283.  tSiz
  4284.  
  4285.   TSIZ (text size) sets the default size of text to be added.
  4286.  
  4287.   ■ The size will be adjusted so that it is a integer multiple of 15 basic
  4288.     units.
  4289.  
  4290.   Read CWSZ.
  4291.  
  4292.  uDup
  4293.  
  4294.   UDUP (unduplicate) removes duplicate objects in a cell.
  4295.  
  4296.   ■ Boxes are removed if the layers and sides coincide exactly.
  4297.  
  4298.   ■ Boxes are removed if TWO or MORE sides coincide.
  4299.  
  4300.   ■ Paths or poly are removed if they have the same layer and all vertices
  4301.     coincide in the same order.
  4302.  
  4303.   ■ Sequential vertices with the same coordinates are deleted.
  4304.  
  4305.   ■ Cells that have the same name, position and orientation are removed.
  4306.  
  4307.  Undo
  4308.  
  4309.   UNDO aborts the current Cell Mode cell.
  4310.  
  4311.   ■ This command will restore either the original cell that existed when
  4312.     the mode was entered or the cell as it was when the last SORT, DEL,
  4313.     SNAP or SMSH command was done.
  4314.  
  4315.   ■ Answering anything other than "c", "s" or "d" to the "Restore ..."
  4316.     question cancels the UNDO command.
  4317.  
  4318.   Read the SORT, DEL, SNAP and SMSH topics.
  4319.  
  4320.  View
  4321.  
  4322.   VIEW sets the layers that will be drawn on the display.
  4323.  
  4324.   ■ Boxes, paths and text that are not viewed are blocked from the GET,
  4325.     FGET, WMOV, QMOV, PBEG and PEND commands.
  4326.  
  4327.   ■ Any active boxes or vertices will be drawn as bright white line
  4328.     segments or as bright white vertex marks regardless of the VIEW
  4329.     setting. This allows you to see where any active object are located,
  4330.     which still will be affected by MOV, CPY, ROT, FLP or DEL commands.
  4331.  
  4332.   ■ Each cell rank may have different VIEW parameters.
  4333.  
  4334.   VIEW works differently depending on whether the Layer Table is on or off.
  4335.  
  4336.   Layer Table OFF:
  4337.  
  4338.     VIEW accepts layer inputs that can be single layer numbers in any
  4339.     order, or a dash (-) can be used to indicate all inclusive layers
  4340.     between the end layers. A dash alone will give all layers from 1 to 64.
  4341.  
  4342.   Layer Table ON:
  4343.  
  4344.     Individual layers can be opened or closed by clicking the mouse on the
  4345.     layer button (defined in FORM.DBD). The button brightens if on.
  4346.  
  4347.   Note: CTRL-ENTER toggles the Layer Table on and off.
  4348.  
  4349.   Read OPEN.
  4350.  
  4351.  vStp
  4352.  
  4353.   VSTP (vertex step) steps an active vertex along a path or poly.
  4354.  
  4355.   ■ The must be only one path (or poly) with one vertex active or the
  4356.     command will not operate.
  4357.  
  4358.   ■ Each time the VSTP button is clicked the active vertex moves one
  4359.     segment.
  4360.  
  4361.   ■ The active vertex normally moves forward in the path, however, if the
  4362.     ALT key is pressed while the button is clicked, the vertex moves
  4363.     backwards.
  4364.  
  4365.   ■ The active vertex stops at the beginning or end of the path, depending
  4366.     on the direction.
  4367.  
  4368.   This is a handy command. It can be used to determine the order of a path
  4369.   vertices, but can also be used to make vertices active (for moving or
  4370.   deleting) that are coincident with other vertices on the same path.
  4371.  
  4372.   Hint: To step from beginning to end of a path, first use PBEG. To step
  4373.     from end to beginning, use PEND first.
  4374.  
  4375.  Wdth
  4376.  
  4377.   WDTH sets the default width of paths to be added.
  4378.  
  4379.   ■ If a pathwidth is entered that is unacceptable, then the prompt will be
  4380.     repeated with the default value in white box.
  4381.  
  4382.   ■ A width of 0 is acceptable. This produces paths of zero width or
  4383.     polygons (poly).
  4384.  
  4385.   ■ The text size will be adjusted so that it is a integer multiple of 15
  4386.     basic units.
  4387.  
  4388.   Important: Paths with a POSITIVE width are drawn with their ends INLINE
  4389.     with their end vertices, while paths with NEGATIVE widths are drawn
  4390.     with their ends EXTENDED out half the width from the vertices.
  4391.  
  4392.   EXTENDED paths should be used if the layout is to be converted to CIF.
  4393.  
  4394.   If conversion will be to GDS either can be used.
  4395.  
  4396.  
  4397.   Read CWSZ.
  4398.  
  4399.  wGet
  4400.  
  4401.   WGET (window get) is a combination of GET and CGET.
  4402.  
  4403.   ■ Cells, boxes, paths and text are affected the same way as those
  4404.     commands.
  4405.  
  4406.   WGET is useful if you are MOVing large sections of a drawing because you
  4407.   can see just which objects are active before the operation. WGET makes
  4408.   single sides of boxes and single vertices of paths active, which are then
  4409.   pulled with active cells when MOVing is done.
  4410.  
  4411.   Read AGET.
  4412.  
  4413.  wGrd
  4414.  
  4415.   WGRD (working grid) steps through the list of working grids.
  4416.  
  4417.   ■ The working grids should have been entered using the SET command.
  4418.  
  4419.   ■ The present working grid will be shown at the bottom of the screen.
  4420.  
  4421.   ■ Each cell rank may have a different working grid.
  4422.  
  4423.   Note: WGRD when assigned to a function key accepts a numerical argument.
  4424.     For example, a parameter in the FORM.DBD file "fkey=wgrd,10" assigns a
  4425.     function key so that when the key is pressed the working grid is set to
  4426.     10 physical units. However, if "fkey=wgrd" is the parameter, you will
  4427.     be prompted for a working grid to be set.
  4428.  
  4429.   Read SET and the General Information/Form File topic.
  4430.  
  4431.  wMov
  4432.  
  4433.   WMOV (window move) moves boxes, paths and cells.
  4434.  
  4435.   ■ The sides of boxes are moved if they are ENCLOSED by the rectangular
  4436.     cursor window.
  4437.  
  4438.   ■ Text and vertices of paths move if they intersect the cursor window.
  4439.  
  4440.   ■ Cells are also moved, but only if the cursor window completely encloses
  4441.     the cell's area. The cell may be drawn fully or be in outline.
  4442.  
  4443.   ■ The first two coordinate points form the cursor window.
  4444.  
  4445.   ■ The next two coordinate points determine the distance to be moved.
  4446.  
  4447.   ■ Box and path layers must be viewed and opened.
  4448.  
  4449.   ■ The move part of this command accepts a single PKE distance entry.
  4450.  
  4451.   WMOV is useful for stretching large sections of drawings orthogonally,
  4452.   for selectively doing box side movements, and for quickly doing small
  4453.   vertex movements.
  4454.  
  4455.  Xpnd
  4456.  
  4457.   XPND expands the width of the drawing window.
  4458.  
  4459.   ■ The new window width is expanded by a factor (2 or 100%).
  4460.  
  4461.   ■ If you expand with the ALT key down, the window width is expanded by a
  4462.     smaller factor (10%).
  4463.  
  4464.   ■ The display is redrawn.
  4465.  
  4466.   Continuously XPNDing will eventually cause the window to expand to the
  4467.   maximum size permitted or the whole "universe".
  4468.  
  4469.   Read DRAW and the General Information/Universe topic.
  4470.  
  4471.  Zoom
  4472.  
  4473.   ZOOM reduces the drawing window size.
  4474.  
  4475.   ■ The new drawing window will be the best fit of the rectangular cursor
  4476.     window.
  4477.  
  4478.   ■ The display is redrawn with the new drawing window.
  4479.  
  4480.   ■ ZOOM works over a 1000:1 range.
  4481.  
  4482.   Hint: To ZOOM to a minimum window at a certain position, click the mouse
  4483.     on that same position twice. This will zoom to the default minimum
  4484.     window size centered at the cursor position.
  4485.  
  4486.   Read DRAW.
  4487.  
  4488. Text Generation
  4489.  
  4490.  Introduction
  4491.  
  4492.   Text is generated by LASI version 5.1 by storing strings of ASCII
  4493.   characters as though they were a type of path. A reference point is
  4494.   stored as the first vertex, and then subsequent vertices contain up to 8
  4495.   ASCII character bytes. When a string of text is drawn, it is expanded
  4496.   much like a path, except that the characters are drawn in sequence from
  4497.   predefined polygon patterns. A string of text can be thought of as a
  4498.   single path segment, where the character size is equal to the path width
  4499.   and the length is determined by the number of characters.
  4500.  
  4501.   Each character is defined in the Text Font File. (TFF.DBD and TFF2.DBD
  4502.   are the generic files supplied with the system.) This file may have any
  4503.   name, but this name must be installed the FORM.DBD file using the "font="
  4504.   parameter. Otherwise the default "TFF.DBD" is assumed. Read the General
  4505.   Information/Form File topic.
  4506.  
  4507.   A text font file is a binary file which contains a single record of 128
  4508.   bytes for each of 96 characters. The characters may be drawn and modified
  4509.   using LASI itself. This file is loaded permanently into memory when LASI
  4510.   is started, so that text drawing can be done without slow disk access.
  4511.  
  4512.   When entering text, a position is requested and the size and layer are
  4513.   taken from the current text size and text layer default settings. The
  4514.   text string is then simply typed in and terminated by ENTER. Like paths,
  4515.   text layer, size, orientation and position can be changed using the same
  4516.   commands that are used for paths.
  4517.  
  4518.  The Text Font File
  4519.  
  4520.   A text font file is ninety-six 128 byte records long. Each record
  4521.   corresponds to an ASCII character starting at decimal 32 (space) and
  4522.   ending at decimal 127 (delta).  When LASI draws a character, the correct
  4523.   record is found and the information is used to draw polygons in the
  4524.   drawing.
  4525.  
  4526.   The records may be randomly written using the MAKETFF.EXE program by
  4527.   giving the name of the cell which contains the character drawing and then
  4528.   simply typing the desired character key.
  4529.  
  4530.   The vertices of the path pattern are written in a single byte of a record
  4531.   in the form of the X-coordinate as the upper 4 bits and the Y-coordinate
  4532.   as the lower 4 bits (nibbles). The coordinates may then be only the
  4533.   numbers 0-15. The coordinate combination (15,15) is however prohibited
  4534.   because it is used to indicate the end of a path.
  4535.  
  4536.   A record therefore contains vertex coordinate bytes from 0-254, with 255
  4537.   decimal (or FF in hex) bytes marking the end of a path. The remaining
  4538.   bytes in a record are always filled with FF bytes to prevent further
  4539.   paths being made as the record is read.
  4540.  
  4541.   The maximum number of vertices that a record can hold is dependent on the
  4542.   number of independent paths, but can be determined from:
  4543.  
  4544.               total no. vertices = 128 - total no. paths
  4545.  
  4546.  
  4547.   There can be any character drawing in the font pattern corresponding to a
  4548.   given typed character. In fact, different text font files (with different
  4549.   names) can be kept for different uses, and they can be conveniently
  4550.   "turned on" by naming them in the "font=" parameter of the form file.
  4551.  
  4552.  The Character Field
  4553.  
  4554.   Characters start as little cells containing a drawing of a character. The
  4555.   data format of the character drawing is quite different from a cell. A
  4556.   character is drawn as a rank 1 cell using paths (0 width) on a 16x16
  4557.   (0-15) field of basic drawing units. The paths may be on any layer. The
  4558.   lower left corner of the field is position 0,0. The vertices of the paths
  4559.   fall on the basic unit grid points. The vertices may be on any grid point
  4560.   except 15,15. The cell can contain boxes that can be used as drawing aids
  4561.   but will be ignored when the character is installed. For proportional
  4562.   character spacing to work correctly, the character drawing should be left
  4563.   justified.
  4564.   ≡≡23
  4565.  
  4566.                                               15
  4567.                 . . . . . . . . . . . . . . . x 15  (15,15 not used)
  4568.                 . . . . . . . . . . . . . . . .
  4569.                 . . . . . . . . . . . . . . . .
  4570.                 . . . . . . . . . . . . . . . .
  4571.                 . . . . . . . . . . . . . . . .
  4572.                 . . . . . _ . . . . . . . . . .
  4573.                 . . . . / . \ . . . . . . . . .
  4574.                 . . . / . . . \ . . . . . . . .
  4575.                 . . / . . . . . \ . . . . . . .
  4576.                 . / . . . . . . . \ . . . . . .
  4577.                 / . . . . . . . . . \ . . . . .  ^
  4578.                 | _ _ _ _ _ _ _ _ _ | . . . . .  |
  4579.                 | . . . . . . . . . | . . . . .  Y
  4580.                 | . . . . . . . . . | . . . . .
  4581.                 . . . . . . . . . . . . . . . .
  4582.      (origin) 0 . . . . . . . . . . . . . . . .
  4583.                 0
  4584.                             X -->
  4585.  
  4586.         Character Drawing Field in basic units (Letter A Shown)
  4587.  
  4588.  
  4589.   Once a character cell is drawn, the program MAKETFF.EXE is used to
  4590.   install the character in the text font file.
  4591.  
  4592.   Note: The CHARS.ZIP file that should have been included with LASI 5.1
  4593.     contains TLC files of all the characters in TFF.DBD and TFF2.DBD.
  4594.  
  4595.  Usefulness of Text
  4596.  
  4597.   Text is usually used to mark your drawings with information such as the
  4598.   names of cells or component names and values. Text will be translated
  4599.   with the other drawing data into text in other drawing systems.
  4600.  
  4601.   Text may also be used as a pattern for putting writing on IC masks by
  4602.   smashing the text using the SMSH command. The characters in the text font
  4603.   file TFF2.DBD have been designed to smash into closed polygons that can
  4604.   be reproduced by most mask generators. The characters in font file
  4605.   TFF.DBD smash into open polygons that must be given width (with the cWSz
  4606.   command) to be reproducible.
  4607.  
  4608.   Text objects have a very useful property. Text can be considered as a
  4609.   NAME with a LOCATION. You can therefore use text to mark connection
  4610.   points to cells or subassemblies. You can then search for those points by
  4611.   NAME and obtain a physical location on a drawing. This can be used to do
  4612.   automatic cell placement and interconnection. This means that you can do
  4613.   actual layout from wiring lists used by SPICE type programs.
  4614.  
  4615.   Inversely, you can also write programs that locate NODES by POSITION in
  4616.   LASI layouts or schematic drawings and associate TEXT with the NODE. You
  4617.   can therefore write wiring lists for SPICE directly from drawings that
  4618.   contain NODE NAMES and DEVICE NAMES written ON the drawing. The utility
  4619.   program LASICKT.EXE works this way.
  4620.  
  4621. TLC Conversion
  4622.  
  4623.  Introduction
  4624.  
  4625.   TLC (Transportable LASI Cells) is a form of LASI cell data that is used
  4626.   for drawing cell data storage and interchange. TLC files are ASCII
  4627.   sequential files written in a well documented form. The information in a
  4628.   TLC file is "line oriented", that is, you can write TLC with a text
  4629.   editor and you can read it in a simple line input procedure. This makes
  4630.   TLC files easily readable by programming languages including BASIC and C.
  4631.   It also makes them very tolerant to catastrophic errors since data can be
  4632.   fairly easily recovered or repaired.
  4633.  
  4634.   TLC is convenient for writing special programs to be used with LASI such
  4635.   as drawing transformation utilities or translators from other drawing
  4636.   systems. (CIF2TLC.EXE, FLATTLC.EXE and GDS2TLC.EXE are examples.)
  4637.  
  4638.   Each TLC file contains the information needed to construct a single cell.
  4639.   The file contains information on the boxes, paths, text and cells in a
  4640.   cell. It does not contain information on how to make any cells that may
  4641.   be used within a cell. To build a complete drawing you need a COMPLETE
  4642.   set of TLC files.
  4643.  
  4644.   By definition, cell files in TLC are called EXTERNAL files, while cell
  4645.   files used by LASI directly (".BP5" and ".CL5" extension) are called
  4646.   INTERNAL files. TLC files always have the extension ".TLC". Internal
  4647.   files are designed for the computers convenience, while external files
  4648.   are designed for human convenience.
  4649.  
  4650.   The program TLCIN.EXE converts external TLC files to internal BP5 and CL5
  4651.   files, and the program TLCOUT.EXE converts internal BP5 and CL5 files to
  4652.   external TLC files.
  4653.  
  4654.   Using TLC is the ONLY WAY that cells can be installed in a LASI drawing
  4655.   from an external source. This is because internal files use a pointer
  4656.   reference to cells. This pointer is the position in the CELLS5.DBD file
  4657.   of a given cell's basic information, which cannot be changed without
  4658.   changing all cell references. TLCIN and TLCOUT take referencing into
  4659.   account and adjust accordingly.
  4660.  
  4661.   Since each cell has its own TLC file, and a TLC file may not really
  4662.   contain all the information to construct a cell if it has lesser cells
  4663.   within it, the TLC files for the lesser cells will have to be present for
  4664.   conversion to internal form using TLCIN. When converting to external
  4665.   form, the TLCOUT is smart enough to make the TLC files of any lesser
  4666.   cells automatically.
  4667.  
  4668.   When conversion from external to internal is being done, the lesser cells
  4669.   will also be made in internal form if they are not already present in the
  4670.   drawing cell collection. You may optionally replace any cells that are
  4671.   already there with new ones.
  4672.  
  4673.   Since TLC produces a set of files that construct a drawing, TLC files may
  4674.   be conveniently "zipped" together into a "package" using PKZIP or similar
  4675.   compressor. The ZIP files may be used as drawing archives, or they may be
  4676.   sent by floppy disk or modem to other locations to share drawings between
  4677.   LASI users.
  4678.  
  4679.  Conversion Errors
  4680.  
  4681.   It is possible that files may be missing, incorrect, or there may not be
  4682.   enough memory when converting. TLCIN and TLCOUT will try to construct a
  4683.   drawing as best as possible by making a TOKEN cell. A token cell is a
  4684.   cell containing only the name of the cell enclosed in double angle
  4685.   brackets ("<<name>>"), as text on layer 64. The rank of a token cell will
  4686.   always be 1, so that it will always appear in other cells. If a token
  4687.   cell is made, TLC will indicate the error, and continue as well as it
  4688.   can.
  4689.  
  4690.   Since it has rank 1, the token cell will contain no other cells. However,
  4691.   if the error is corrected, and TLCIN or TLCOUT is used to overwrite the
  4692.   token cell, normal cell nesting will be constructed. The token cell may
  4693.   be thought of as a placeholder for the missing cell where it is used in
  4694.   other cells. TLCIN or TLCOUT will replace the token cell with the actual
  4695.   cell in the drawing cell collection, once the correct information is
  4696.   available to make the actual cell.
  4697.  
  4698.  Pooled Cells
  4699.  
  4700.   When converting internal files to TLC files, TLCOUT will look for an
  4701.   ATTACHED cell that may be used in a drawing in the POOL directory as it
  4702.   is listed in the FORM.DBD file. If it doesn't find it, it will produce a
  4703.   token TLC file consisting of the name of the cell in text. It will not
  4704.   look for an attached cell in the drawing directory.
  4705.  
  4706.   When converting from TLC files, TLCIN will put ALL cells in the DRAWING
  4707.   directory since it has no knowledge (nor should it) of any cells that may
  4708.   have come from a pool. Keep this in mind if you are converting into a
  4709.   drawing; any pooled cells may get replaced.
  4710.  
  4711.  Conversion Options
  4712.  
  4713.   TLCOUT has two conversion options:
  4714.  
  4715.   ■ Convert ALL Cells to TLC
  4716.  
  4717.     ALL Cells are converted from the source to the destination. This is the
  4718.     standard drawing (archive) dump to TLC files.
  4719.  
  4720.   ■ Convert NAMED Cells to TLC
  4721.  
  4722.     NAMED cells are converted to TLC files from the source to the
  4723.     destination. Lesser cells that are needed to construct a cell of
  4724.     greater rank will be optionally converted.
  4725.  
  4726.   TLCIN has two conversion options:
  4727.  
  4728.   ■ Convert ALL Cells from TLC
  4729.  
  4730.     ALL cells are converted to internal files. This requires that the
  4731.     CELLS.REF file exist at the source. The names of all the cells at the
  4732.     source are simply read from the CELLS.REF file and are converted as if
  4733.     they had been named individually. If the CELLS.REF file is missing at
  4734.     the source, then NAMED conversion must be used.
  4735.  
  4736.   ■ Convert NAMED Cells from TLC
  4737.  
  4738.     NAMED cells are converted to internal files. If not already present,
  4739.     the named cell is added to the CELLS5.DBD file at the destination. If
  4740.     lesser cells are needed they are also converted from source TLC files
  4741.     to internal files at the destination. If the lesser cells are not
  4742.     present at the destination they will be converted automatically. If the
  4743.     lesser cells may already be at the destination, you will have the
  4744.     option to replace them with new ones. Therefore, to fully reconstruct a
  4745.     named cell from TLC, all lesser cells must be present either in the
  4746.     source or destination cell collections in TLC or internal form.
  4747.  
  4748.   Notes:
  4749.  
  4750.   1. If the CELLS5.DBD file is not present at the destination, then one
  4751.      will be created and a message will be flashed.
  4752.  
  4753.   2. To convert a complete layout drawing from TLC using TLCIN, you start
  4754.      with a blank directory, and use the CELLS.REF file to convert ALL
  4755.      files, or alternately NAME the main drawing cell to be converted if
  4756.      you want only some cells in the CELLS.REF file. The TLCIN program then
  4757.      reconstructs the whole drawing by making all lesser cells first, and
  4758.      then the named main cell.
  4759.  
  4760.   3. With all options the CONSTS5.DBD file of the source or destination
  4761.      directory is left unaffected. If a drawing is reconstructed from TLC,
  4762.      you must load your favorite CONSTS5.DBD file, or let LASI provide a
  4763.      default one when it starts up.
  4764.  
  4765.  Running TLCIN or TLCOUT
  4766.  
  4767.   When running either TLC program you pass parameters as arguments on the
  4768.   DOS command line. Arguments are separated by one or more spaces.
  4769.  
  4770.   The FIRST argument is the SOURCE path, the disk drive name or "." for the
  4771.   current directory.
  4772.  
  4773.   The SECOND argument is the DESTINATION path, the disk drive name or "."
  4774.   for the current directory.
  4775.  
  4776.   The NEXT argument is needed only if the NAMED cell option is used, and is
  4777.   a list of up to 10 cellnames to be converted.
  4778.  
  4779.   Hint: Run the TLCIN or TLCOUT without any arguments to get HELP.
  4780.  
  4781.  The CELLS.REF File
  4782.  
  4783.   As TLCOUT makes it, the CELLS.REF file is just a copy of CELLS5.DBD.
  4784.  
  4785.   You may change the CELLS.REF file to convert modified lists of cells into
  4786.   internal form.
  4787.  
  4788.   To remove a cell, delete the cell's name and the data line that follows
  4789.   it in the CELLS.REF file.
  4790.  
  4791.   To add a cell, insert the cell's name on a single line and then the
  4792.   cell's rank on the next line. You don't need any additional data on the
  4793.   second line.
  4794.  
  4795.   The entry on the first line of the CELLS.REF file is the number of cells
  4796.   in the file. If you add or delete cells, you should adjust this number.
  4797.   When TLC converts to internal form using CELLS.REF, it counts either to
  4798.   the number of cells it reads on the first line or to the end of the file,
  4799.   whichever comes first.
  4800.  
  4801.  TLC Format
  4802.  
  4803.   TLC Cell files have a simple record structure. There are presently five
  4804.   kinds of records: Header, Cell, Box, Path and Text.
  4805.  
  4806.   The records for the objects in the cell are preceded by an "equals code"
  4807.   consisting of two characters: the first is "=" and the second is "H",
  4808.   "C", "B", "P" an "T" for Header, Cell, Box, Path or Text respectively.
  4809.   Each equals code is terminated by a newline <nl>.
  4810.  
  4811.   A TLC reading program then determines the type of object to be made from
  4812.   the code and acts accordingly. If at some time in the future, other
  4813.   objects are added to LASI, similar code will be used.
  4814.  
  4815.   The TLC format is designed so that data can be resynchronized if an error
  4816.   occurs. If an error is encountered during translation, it is possible
  4817.   that one or two objects may be incorrectly reconstructed. The Header
  4818.   record contains an object count. If this is compared to the actual number
  4819.   of objects made, any miscounts may be detected by a TLC reading program.
  4820.  
  4821.   When writing programs that read TLC files in C, read the file line by
  4822.   line using fgets() and then parse the line using strtok(). Reading a line
  4823.   at a time allows you to resynchronize if there is a data error.
  4824.  
  4825.   All records, including the Header, may be written in any order in a file.
  4826.  
  4827.  Records in Detail
  4828.  
  4829.   Header Record:      <nl>= carriage return + linefeed    <sp>= space
  4830.  
  4831.       1= =H<nl>
  4832.       2= Name of Cell (DOS file name)<nl>
  4833.       3= Version of LASI (literal)<nl>
  4834.       4= Version of TLC (literal)<nl>
  4835.       5= Basic Units per Physical Unit<nl>
  4836.       6= Name of Physical Unit (literal)<nl>
  4837.       7= Date of Cell Conversion (literal)<nl>
  4838.       8= Time of Cell Conversion (literal)<nl>
  4839.       9= Rank of Cell<sp>
  4840.       10= Left Outline Boundary in basic units<sp>
  4841.       11= Bottom Boundary in basic units<sp>
  4842.       12= Right Boundary in basic units<sp>
  4843.       13= Top Boundary in basic units<nl>
  4844.       14= Number of Boxes<sp>
  4845.       15= Number of Paths<sp>
  4846.       16= Number of Vertices<sp>
  4847.       17= Number of Cells<nl>
  4848.  
  4849.       Note: Versions must begin with a numeric character
  4850.  
  4851.   Cell Record Entries:
  4852.  
  4853.       1= =C<nl>
  4854.       2= Name of Lesser Cell<nl>
  4855.       3= Orientation (see below)<sp>
  4856.       4= X Position in basic units<sp>
  4857.       5= Y Position in basic units<sp>
  4858.       6= reserved (presently zero)<nl>
  4859.  
  4860.       Property Number: (0-15)
  4861.         16 bit integer, all bits 0 except:
  4862.  
  4863.           Bit 4,
  4864.             0= draw cell fully
  4865.             1= draw cell outline
  4866.  
  4867.         Orientation:
  4868.           Bit 3,
  4869.             0= cell not flipped
  4870.             1= cell is flipped in X before rotation
  4871.  
  4872.           Bits 2 and 1,
  4873.             0,0 = no rotation
  4874.             0,1 = 90 deg rotation CCW
  4875.             1,0 = 180 deg rotation CCW
  4876.             1,1 = 270 deg rotation CCW
  4877.  
  4878.   Box Record Entries:
  4879.  
  4880.       1= =B<nl>
  4881.       2= Layer of Box<sp>
  4882.       3= X of Lower Left Corner in basic units<sp>
  4883.       4= Y of Lower Left Corner in basic units<sp>
  4884.       5= X of Upper Right Corner in basic units<sp>
  4885.       6= Y of Upper Right Corner in basic units<nl>
  4886.  
  4887.   Path/Poly Record Entries:
  4888.  
  4889.       1= =P<nl>
  4890.       2= Layer of Path/Poly<sp>
  4891.       3= Width in basic units<sp>
  4892.       4= No. of Vertices in path/poly<nl>
  4893.       5= Vertices in basic units in the form:
  4894.       X1<sp>Y1<sp>X2<sp>Y2<sp>X3<sp>Y3<sp>X4<sp>Y4<sp>X5<sp>Y5<nl>
  4895.       .......Xn-1<sp>Yn-1<sp>Xn<sp>Yn<nl>
  4896.  
  4897.       (Groups of 5 coordinates separated by <sp> ended by <nl>,
  4898.       always with <nl> after Last Coordinate Pair)
  4899.  
  4900.   Text Record Entries:
  4901.  
  4902.       1= =T<nl>
  4903.       2= Layer of Text<sp>
  4904.       3= Size in basic units<sp>
  4905.       4= No. of Vertices used by text (includes Ref Point)<sp>
  4906.       5= Orientation 0-7 (same as cells)<nl>
  4907.       6= X Ref Point in basic units<sp>
  4908.       7= Y Ref Point in basic units<nl>
  4909.       8= ASCII character text string<nl> (u/l case, up to 32 characters)
  4910.  
  4911. System Contents
  4912.  
  4913.  LASI System Files
  4914.  
  4915.   !README.TXT     Installation instructions for network version
  4916.   LASI.EXE        LASI boot program
  4917.   LASI587.EXE     Main drawing program for coprocessor
  4918.   LASI5A.EXE      Main drawing program without coprocessor
  4919.   LASIDRC.EXE     LASI design rule checker
  4920.   LASICKT.EXE     LASI SPICE code compiler
  4921.   LHI.EXE         LASI help and information reader
  4922.   PGLPLOT.EXE     Hewlett-Packard HP-GL plotter utility
  4923.   PRNPLOT.EXE     Multiple format plotter utility
  4924.   MAKETFF.EXE     Text font file maker utility
  4925.   MANUAL.EXE      Manual printer utility
  4926.   NETCOMP.EXE     Network list compare utility
  4927.   TLCIN.EXE       Transportable cell file "in" converter
  4928.   TLCOUT.EXE      Transportable cell file "out" converter
  4929.   FLATTLC.EXE     TLC file flattening utility
  4930.  
  4931.   TLC2GDS.EXE     TLC to Calma Stream (GDSII) converter
  4932.   GDS2TLC.EXE     GDSII to TLC converter
  4933.  
  4934.   TLC2CIF.EXE     TLC format to CIF format converter
  4935.   CIF2TLC.EXE     CIF format to TLC format converter
  4936.  
  4937.   DXF2TLC.EXE     AutoCAD drawing extractor
  4938.   TILT.EXE        TLC to TLC 3-D view converter
  4939.   INSTALL.EXE     Install program for floppy disk version
  4940.   FORPRFIT.EXE    LASI for profit program
  4941.   FEEDBACK.EXE    User response program
  4942.  
  4943.   ESCHCPY.COM     Screen hardcopy for ESC/P (Epson type) printers
  4944.   PCLHCPY.COM     Screen hardcopy for LaserJet/DeskJet (H-P) printers
  4945.   PCXHCPY.COM     Screen hardcopy in PCX format.
  4946.   VESATEST.COM    VESA video checker
  4947.   LASISAVR.COM    Free screen saver (type lasisavr /? for info)
  4948.  
  4949.   LASI51.LHI      Main LASI help and information text file
  4950.   LASIDRC.LHI     LASIDRC help text file
  4951.   LASICKT.LHI     LASICKT help text file
  4952.   PLOTTERS.LHI    Plotting programs help text file
  4953.   CNVRTGDS.LHI    TLC2GDS and GDS2TLC help text file
  4954.   CNVRTCIF.LHI    CIF2TLC and TLC2CIF help text file
  4955.   LASIDSS.LHI     Data structure standard help text file
  4956.  
  4957.   FORM.DBD        Generic configuration file
  4958.   TFF.DBD         Generic text font file (line characters)
  4959.   TFF2.DBD        Generic text font file (solid characters)
  4960.  
  4961.   TILT.C          Educational source code
  4962.   TUTOR.ZIP       Tutorial files collection
  4963.   CHARS.ZIP       Text character cell collection
  4964.   ICONS.ZIP       LASI Windows icons
  4965.  
  4966.